🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## Soket.IO发送消息 给本次链接发消息 ``` socket.emit() ``` 给某个房间内所有人发消息 ``` io.in(root).emit() ``` 除本连接外,给某房间内所有人发消息 ``` socket.to(root).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');}); ``` ## 信令服务器 作用: 媒体信息交换 网络信息交换 是webrtc通信中必须要有的 ## 为什么要使用 socket.io * socket.io是websocket超集 * socket.io有房间的概念 * socket.io跨平台,跨终端,跨语言 ## socket.io 工作原理 ![tJQa5V.png](https://s1.ax1x.com/2020/06/01/tJQa5V.png) ## 改造服务端的基本流程 * 安装socket.io * 引入socket.io * 处理connection消息