本文内容基于nodejs,简单搭建node服务可参考
http://blog.csdn.net/u014420383/article/details/47945819
websocket实现了浏览器与服务器全双工通信,允许多个客户端同时和服务器进行通信,也允许客户端主向多个客户端发送信息
1.安装socket模块
如果我们要使用websocket,需要先给服务器安装socket模块,
例如给node的服务文件server3.js,安装socket
cmd控制台cd切换到server3.js目录下,执行命令npm install socket.io
安装完毕后,在server3.js的目录下,多了一个node_modules文件夹。
这个文件夹就是socket模块的目录。
然后在server3.js文件开头引入socket.io:
var io = require('socket.io');
2.在server3.js文件中给http监听对象添加socket监听
var socket = io.listen(httpServer);//httpServer是http监听
3.客户端发送socket请求
假设index.html页面为客户端,如果要向服务端发送socket连接请求
首先得引入client.socket.js文件
再创建socket连接
var scoket = io.connect('http://localhost:8888');//协议不能丢
4.监听socket连接事件
//socket代表的是当前服务端和客户端建立的对象(TCP)
//socket.sockets对象监听connection事件,只要有一个客户端进行了
//socket对象连接,就会执行function函数内容
socket.sockets.on('connection',function(){
//这里写wsocket连接后的事件
//socket基本方法:
socket.emit(event1,data);//向客户端发送event1事件,并传输data
socket.on(event2,function(data){
//接收客户端发来的event2事件,并得到传输来data
//根据事件名和data数据进行下一步的操作
});
socket.broadcast.emit(event3,data);
//向所有客户端广播event1事件,并传输data
});
例子:应用websocket广播同步客户端信息
例子功能:
在客户端设置一个”连接socket”按钮和一个div,
当客户端1(用浏览器窗口代替不同客户端)点击连接socket按钮,就会得到来自服务器的“欢迎你”提示。
当客户端2点击连接socket按钮,也会得到“欢迎你”提示,此时客户端1会得到”有新人进来了”。
当客户端3点击连接socket按钮,也会得到“欢迎你”提示,此时客户端1和2会得到”有新人进来了”的提示。
另外,当一个客户端点击socket按钮,那么该客户端上的红色