webRTC学习系列之——信令服务器的实现与socket.io的使用

信令服务器

选用socket.io的原因

  1. socket.io是WebSocket的超集(具有稳定性)
  2. socket.io有房间的概念
  3. socket.io跨平台,跨终端,跨语言

socket.io工作原理

webRTC学习系列之——信令服务器的实现与socket.io的使用_第1张图片

socket.io发送消息(常用)

方法 作用
socket.emit() 给本次连接发送消息
io.in(room).emit() 给某个房间内所有人发送消息
socket.to(room).emit() 除本连接外,给某个房间内所有人发送消息(例如管理员禁言,公告)
socket.broadcast.emit() 除本连接外,给整个站点(所有房间)的所有人发送消息

socket.io客户端处理消息

  1. 发送action命令
    S:socket.emit( ‘action’ );
    C:socket.on( ‘action’ , function( ){ … });
  2. 发送一个action命令,带有一个data数据
    S:socket.emit(‘action’,data);
    C:socket.on( ‘action’ , function( data ) { … } );
  3. 发送一个action命令,带有两个数据
    S:socket.emit( ‘action’ , arg1 , arg2 );
    C:socket.on( ‘action’ , function ( arg1 , arg2 ) {…} );
  4. 发送一个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');

你可能感兴趣的:(WebRTC)