信令服务器
选用socket.io的原因
- socket.io是WebSocket的超集(具有稳定性)
- socket.io有房间的概念
- socket.io跨平台,跨终端,跨语言
socket.io工作原理
socket.io发送消息(常用)
方法 | 作用 |
---|---|
socket.emit() | 给本次连接发送消息 |
io.in(room).emit() | 给某个房间内所有人发送消息 |
socket.to(room).emit() | 除本连接外,给某个房间内所有人发送消息(例如管理员禁言,公告) |
socket.broadcast.emit() | 除本连接外,给整个站点(所有房间)的所有人发送消息 |
socket.io客户端处理消息
- 发送action命令
S:socket.emit( ‘action’ );
C:socket.on( ‘action’ , function( ){ … }); - 发送一个action命令,带有一个data数据
S:socket.emit(‘action’,data);
C:socket.on( ‘action’ , function( data ) { … } ); - 发送一个action命令,带有两个数据
S:socket.emit( ‘action’ , arg1 , arg2 );
C:socket.on( ‘action’ , function ( arg1 , arg2 ) {…} ); - 发送一个action命令,在emit方法中包含回调函数
S:socket.emit( ‘action’ , data , function(arg1,arg2) {…} )
C:socket.on( ‘action’ , function(data , fn) {fn(‘a’,‘b’); } )
实现信令服务器
安装sockit.io
npm i socket.io
引入socket.io
const socketIo = require('socket.io');