Socket.io是一个简单的小类库,类库中实现了类似Node.js中的net模块所实现的功能,这些功能包括WebSocket通信,XHR轮询,JSONP轮询等,源码时代H5前端学科老师来聊一聊怎么使用这个类库,实现通信功能。
Socket.io类库可以接收所有与服务器端相连的客户端发送的消息,也可以相客户端发送消息,实现客户端和服务器端的即时通信。这个类库在服务器端和客户端之间提供了一个共享的接口,在客户端和服务器端连接建立以后,在处理通信消息时,我们开发者可以在客户端使用服务器端JS代码。
那么,我们怎么使用Socket.IO呢?
1.下载Socket.IO类库
npm install socket
2.在我们需要使用的模块中,引入
var socket = require( ‘ socket.io ’ )
3. 创建一个Socket.IO服务器,它依赖于一个已经创建好的HTTP服务器,在HTTP 服务器运行之后,使用listen方法为该服务器附加一个Socket.IO服务器
var socketserver = socket.listen( httpserver ); // httpserver代表一个已运行的服务器
4. 在Socket.IO服务器创建好以后,当客户端和服务器端建立连接时,触发Socket.IO 服务器端的connnection事件,可以通过监听该事件并指定事件回调函数的方法指定当 客户端与服务器端建立连接时候所需执行的处理,该回调函数的指定方法如下 所示:
socketserver.on(‘connection’, function() {
//回调函数
} )
5. 在该函数中使用一个参数,参数值为服务器端用于与客户端建立连接的socket 端口对象
6.在客户端和服务器端建立连接之后,当接收到客户端发送消息时,触发socket端口对象的message事件,可以通过监听该事件并指定事件回调函数的方法指定当接收到客户端发送消息时所需执行的处理,该回调函数的指定方法如下所示
socketserver.on( ‘message’, function ( msg ) {
//回调函数
} )
7. 在该回调函数中使用一个参数,参数值为客户端发送消息,代码如下
socket.send( msg );
在客户端与服务器端建立连接之后,当客户端断开连接时,触发socket端口对象的 disconnect事件,可以通过监听该事件并指定事件回调函数的方法指定当前客户端 断开连接时所需执行的处理,该回调函数中不适用任何参数。
如下代码,展示如何为一个HTTP服务器附加一个Socket.IO服务器,当HTTP服务器接收到客户端请求时,读取应用程序根目录下的index.html文件中的内容,并且将其返回给客户端。当一个客户端与Socket.IO服务端建立连接后,向客户端发送“你好”,消息字符串。当接收到客户端发送消息时,将该消息输出控制台中。当客户端断开连接时,在控制台中输出“客户端断开连接”字符串。
var httpserver = require(‘http’);
var socket = require(‘socket.io’);
var fs= require(‘fs’);
var server =http.createserver(function(req, res){
res.writehead(200,{ ‘content-type’: ‘text/html ‘});
res.end(fs.readfileSyc( ‘./index.html’ );
})
server.listen(3000);
var socketserver = socket.listen(server);
socketserver.on(‘connection’, function (socketserver) {
console.log(‘客户端建立连接 ’ )
socketserver.send( ‘你好’ )
socketserver.on( ‘message’, function ( msg ) {
console.log( ‘接收到一个消息:’, msg )
} )
socketserver.on( ‘disconnect’, function() {
console.log(‘ 客户端连接已经建立’ )
} )
})
本文章由源码时代H5前端学科讲师原创!
转载须注明出处!感谢大家的配合!
Socket.io类库可以接收所有与服务器端相连的客户端发送的消息,也可以相客户端发送消息,实现客户端和服务器端的即时通信。这个类库在服务器端和客户端之间提供了一个共享的接口,在客户端和服务器端连接建立以后,在处理通信消息时,我们开发者可以在客户端使用服务器端JS代码。
那么,我们怎么使用Socket.IO呢?
1.下载Socket.IO类库
npm install socket
2.在我们需要使用的模块中,引入
var socket = require( ‘ socket.io ’ )
3. 创建一个Socket.IO服务器,它依赖于一个已经创建好的HTTP服务器,在HTTP 服务器运行之后,使用listen方法为该服务器附加一个Socket.IO服务器
var socketserver = socket.listen( httpserver ); // httpserver代表一个已运行的服务器
4. 在Socket.IO服务器创建好以后,当客户端和服务器端建立连接时,触发Socket.IO 服务器端的connnection事件,可以通过监听该事件并指定事件回调函数的方法指定当 客户端与服务器端建立连接时候所需执行的处理,该回调函数的指定方法如下 所示:
socketserver.on(‘connection’, function() {
//回调函数
} )
5. 在该函数中使用一个参数,参数值为服务器端用于与客户端建立连接的socket 端口对象
6.在客户端和服务器端建立连接之后,当接收到客户端发送消息时,触发socket端口对象的message事件,可以通过监听该事件并指定事件回调函数的方法指定当接收到客户端发送消息时所需执行的处理,该回调函数的指定方法如下所示
socketserver.on( ‘message’, function ( msg ) {
//回调函数
} )
7. 在该回调函数中使用一个参数,参数值为客户端发送消息,代码如下
socket.send( msg );
在客户端与服务器端建立连接之后,当客户端断开连接时,触发socket端口对象的 disconnect事件,可以通过监听该事件并指定事件回调函数的方法指定当前客户端 断开连接时所需执行的处理,该回调函数中不适用任何参数。
如下代码,展示如何为一个HTTP服务器附加一个Socket.IO服务器,当HTTP服务器接收到客户端请求时,读取应用程序根目录下的index.html文件中的内容,并且将其返回给客户端。当一个客户端与Socket.IO服务端建立连接后,向客户端发送“你好”,消息字符串。当接收到客户端发送消息时,将该消息输出控制台中。当客户端断开连接时,在控制台中输出“客户端断开连接”字符串。
var httpserver = require(‘http’);
var socket = require(‘socket.io’);
var fs= require(‘fs’);
var server =http.createserver(function(req, res){
res.writehead(200,{ ‘content-type’: ‘text/html ‘});
res.end(fs.readfileSyc( ‘./index.html’ );
})
server.listen(3000);
var socketserver = socket.listen(server);
socketserver.on(‘connection’, function (socketserver) {
console.log(‘客户端建立连接 ’ )
socketserver.send( ‘你好’ )
socketserver.on( ‘message’, function ( msg ) {
console.log( ‘接收到一个消息:’, msg )
} )
socketserver.on( ‘disconnect’, function() {
console.log(‘ 客户端连接已经建立’ )
} )
})
本文章由源码时代H5前端学科讲师原创!
转载须注明出处!感谢大家的配合!