我需要羣集socket.IO服務器並希望對所有連接使用相同的端口
爲了做到這一點,我創建了express server,配置它然後告訴socket.IO來聽這個服務器同一端口上的套接字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);
}
但是這不適用於多個服務器。當我試圖連接到socket服務器,我得到以下信息:
websocket.js?13d9:112 WebSocket connection to 'wss://...' failed: Error during WebSocket handshake: Unexpected response code: 400
但在服務器端事件偵聽器on("connection",() => {})
作品。
我有相同的代碼來創建服務器羣集時,我呈現應用程序,它工作得很好。
只有一個socket.IO服務器監聽此端口時,套接字服務器才能正常工作。
如果有一種方法可以爲集羣中的一個端口創建多個socket.IO監聽器?