信令服務器
選用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');