Socket io集群在同一个端口上

我需要群集socket.IO服务器,并希望为所有连接使用相同的端口
为了做到这一点,我创build快递服务器,configuration它,然后告诉socket.IO听此服务器

if(cluster.isMaster){ var cpuCount = require('os').cpus().length; for (let i = 0; i < cpuCount; i += 1) { cluster.fork(); } else { const credentials = {key: privateKey, cert: certificate}; const app = express(); const httpsServer = https.createServer(credentials, app); httpsServer.listen(8003); const io = SocketIO.listen(httpsServer); } 

但是,这不适用于多个服务器。 当我试图连接到套接字服务器时,我得到以下消息:
websocket.js?13d9:112 WebSocket connection to 'wss://...' failed: Error during WebSocket handshake: Unexpected response code: 400

但是在服务器端事件监听器on("connection", () => {})起作用。
我有相同的代码来创build服务器群集,当我呈现应用程序,它工作得很好。
当只有一个socket.IO服务器监听这个端口时,套接字服务器工作。

如果有一种方法可以为集群中的一个端口创build多个socket.IO监听器?

终于find了答案

Socket.io正在执行多个请求来执行握手并build立与客户端的连接。 对于一个集群,这些请求可能会到达不同的工作者,这将破坏握手协议。

所以我决定使用粘性会话 lib的socket.IO,它的工作原理就像我想要的