为了能够在利用 Socket.IO 的 RPC 功能的同时发送二进制数据,我认为我可以在同一台服务器上同时使用 Socket.IO 和WS模块。与其打开完全独立的服务器来建立两个连接,我想知道是否可以使用相同的 HTTP 服务器。
是否可以同时使用http.createServer()
为 Socket.IO 和 WS 创建的一个服务器?需要明确的是,我预计从客户端创建一个 Socket.IO 连接和一个常规 WebSocket 连接。以下代码在客户端创建协议错误,可能是因为 Socket.IO 和 WS 都在尝试处理连接。
var http = require('http');
var server = http.createServer(app);
server.listen(3000);
// Socket.IO
var io = require('socket.io').listen(server);
io.sockets.on('connection', function (socket) {
// ...
}
// ws
var WebSocketServer = require('ws').Server
var wss = new WebSocketServer({server: server});
wss.on('connection', function (ws) {
// ...
}