Socket.IOのRPC機能を利用してバイナリデータを送信できるように、Socket.IOとWSの両方のモジュールを同じサーバー上で使用できると考えました。両方の接続を行うために完全に別々のサーバーを開くのではなく、私は同じHTTPサーバーを利用できるかどうか疑問に思っています。Socket.IOとWSのWebSocket接続の共有
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) {
// ...
}