Socket.IO の RPC 機能を利用しながらバイナリ データを送信できるようにするために、同じサーバー上でSocket.IO とWSモジュールの両方を使用できると考えました。完全に別々のサーバーを開いて両方の接続を確立するのではなく、同じ HTTP サーバーを利用できないかと考えています。
http.createServer()
Socket.IO と WS の両方で同時に作成したサーバーを 1 つだけ使用することはできますか? 明確にするために、クライアントから 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) {
// ...
}