客户端使用Socket.io库,服务器端能否使用其他WebSocket库?
客户端用Socket.io时,服务器能否用其他WebSocket库?
不行,Socket.io并非原生WebSocket协议的直接实现,它在标准WebSocket之上封装了一套自定义协议,包含专属的握手流程、心跳检测、事件路由、房间管理等扩展功能。如果客户端用Socket.io发起连接,服务器必须使用Socket.io库才能解析它的请求格式,完成正常通信。
如果非要和其他WebSocket服务器兼容,你可以在Socket.io客户端配置里开启原生WebSocket模式,比如:
const socket = io('http://your-server', { transports: ['websocket'], forceNew: true });
但这种情况下,Socket.io的所有扩展特性都会失效,只能使用原生WebSocket的基础收发功能,相当于把Socket.io当成了一个普通的WebSocket客户端来用。
内容的提问来源于stack exchange,提问作者Jackie
相关产品推荐
相关产品推荐

