WebSocket 与 Socket.io 总结
Published on Thu Mar 03 2022 23:00:00 GMT+0000
WebSocket
WebSocket 协议在2008年诞生,2011年成为国际标准。所有浏览器都已经支持了。
它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。
(1)建立在 TCP 协议之上,服务器端的实现比较容易。
(2)与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。
(3)数据格式比较轻量,性能开销小,通信高效。
(4)可以发送文本,也可以发送二进制数据。
(5)没有同源限制,客户端可以与任意服务器通信。
(6)协议标识符是ws
(如果加密,则为wss
),服务器网址就是 URL。
使用 Socket.io
服务端
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| const soc = socketIo(ser);
soc.on('connection',(socket)=>{ socket.on('disconnect',()=>{ console.log("用户"+socket.id+"断开连接"); }); console.log("用户"+socket.id+"连接"); socket.on('msg',(data)=>{ console.log(data); socket.emit('msg','你好浏览器'); }) })
|
浏览器端
1 2 3 4 5 6 7 8
| const soc = io('http://localhost:80');
soc.emit('msg','你好服务器');
soc.on('msg',(data)=>{ console.log(data); });
|