4. yjs后台websocket需要做什么?
y-websocket内部也有服务的脚本 /bin/server.js 处理过程很简单,建立连接后 处理收到的消息,再发送出去
后端<br>// 导入WebSocket模块:<br>const WebSocket = require('ws');<br>console.log(WebSocket)<br><br>// 引用server类 就是说真正的服务在大对象中的Server<br>const WebSocketServer = WebSocket.Server;<br><br>// ws:localhost:8500<br>const server = new WebSocketServer({<br> port:8500<br>})<br><br>// open 事件 <br>server.on('open',()=>{ console.log("webSocket open") })<br>// 绑定close 事件<br>server.on('close',()=>{ console.log("webSocket close") })<br>// 绑定error 事件<br>server.on('error',()=>{ console.log("webSocket error")})<br><br>// 绑定connection 事件 <br>// 如果有WebSocket请求接入,server对象可以响应connection事件来处理这个WebSocket:<br>server.on('connection',(ws)=>{<br> console.log("connection 只要有人连接,那么我就会被触发,有人进来了");<br><br> // 在这里面绑定message 事件 msg是前端发送过来的数据<br> // 接收前端传递的数据,最终需要广播出去给每一个客户端<br> ws.on('message',(msg)=>{ <br> console.log("message")<br> console.log(msg)<br><br> // 那到底如何广播出去呢?server.clients 记录着保存所有连接到server上的客户端<br> // 通过forEach遍历得到每一个用户<br> server.clients.forEach(item=>{<br> // item下有个send方法,把这msg广播出去再返回给前端 前端在message事件处理函数中就会收到<br> item.send(msg)<br> })<br> })<br>})