【发布时间】:2017-06-29 23:35:41
【问题描述】:
我需要集群 socket.IO 服务器并希望对所有连接使用相同的端口
为了做到这一点,我创建了快速服务器,对其进行配置,然后告诉 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", () => {}) 有效。
当我渲染应用程序时,我有相同的代码来创建服务器集群,它工作得很好。
当只有一个 socket.IO 服务器侦听此端口时,套接字服务器工作。
如果有办法为集群中的一个端口创建多个 socket.IO 侦听器?
【问题讨论】: