使用socket.io创建socket.io服务器,但是该服务器依赖于已经创建的http服务器。
http服务器运行后,使用listen方法将socket.io服务器连接到http服务器。
复制代码如下: varsio=REQUIRE(' scout . io ');var socket=sio.listen(服务器);
Socket是在server的基础上创建的socket.io服务器。
当客户端与服务器建立连接时,触发socket.io服务的连接事件。
复制代码如下:socket.on ('connection ',function(socket){ });
回调函数中的套接字参数是服务器和客户端之间连接的套接字端口对象。
当接收到客户端发送的消息时,发出套接字端口对象的消息事件。
复制代码如下:socket.on ('message ',function(msg){ });
回调函数的参数是客户端发送的消息。
您可以使用socket.send(msg)向客户端发送消息。
当服务器和客户端之间的连接断开时,会触发断开事件。
复制代码如下:socket.on ('disconnect ',function(){ });
这个回调函数不应用任何参数。
服务器端server.js代码:
复制代码如下: var http=require(' http ');var SiO=require(' socket . io ');var fs=require(' fs ');var server=http . createserver(function(req,res) { res.writeHead(200,{ ' Content-type ' : ' text/html ' });res.end(fs.readFileSync(')。/index . html’);});server . listen(1337);var socket=sio.listen(服务器);Socket.on ('connection ',function(socket){ console . log(' client建立连接');socket . send(' hello ');Socket.on ('message ',function (msg) {console.log('收到消息: ' msg);});Socket.on ('disconnect ',function(){ console . log(' client disconnects ')。);});});
创建客户端index.html代码:
复制代码如下:DOCTYPE html html head lang=' en ' meta charset=' UTF-8 ' title/title script src=' http :/socket . io/socket . io . js '/script var socket=io . connect();socket.on('message ',function(data){ console . log(data);Socket.send('消息已收到。)});Socket.on ('disconnect ',function () {console.log('服务器已断开连接,');});/script/headbody/body/html
这段代码:/socket.io/socket.io.js是服务器端的socket.io类库提供的,所以不需要实际在客户端放置socket.io.js文件。
在脚本文件中,首先使用io.connect()方法连接服务器socket.io服务器。
此方法返回一个与服务器建立连接的客户端套接字端口对象。
当接收到服务器发送的消息时,触发客户端套接字端口对象的消息事件。
复制代码如下:socket.on ('message ',function(msg){ });Msg是服务器发送的数据;
您也可以使用客户端套接字对象的send()方法向服务器发送数据。
复制代码如下: socket . send(msg);
当服务器断开连接时,客户端套接字端口对象的断开连接事件被触发,
复制代码如下:socket.on ('disconnect ',function () {})
这个回调函数不接受参数。
注意:
客户端的消息机制和服务器的消息处理机制完全一致,因为socket.io保证了客户端和服务器共享同一个API。
运行:后的结果
当浏览器关闭时,与服务器的连接会断开。此时,服务器触发断开事件,客户端断开连接。