私はcluster.IOサーバーをクラスタ化し、すべての接続に同じポートを使用する必要があります
これを行うには、エクスプレスサーバーを作成し、構成してから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);
}
しかし、これは複数のサーバーでは機能しません。私は、サーバーのソケットに接続しようとしているとき、私は以下のメッセージを取得:
websocket.js?13d9:112 WebSocket connection to 'wss://...' failed: Error during WebSocket handshake: Unexpected response code: 400
しかし、サーバ側でのイベントリスナーon("connection",() => {})
作品。
私はアプリケーションをレンダリングするときにサーバークラスターを作成するためのコードは同じですが、うまくいきます。
ソケットサーバーは、このポートをlistenするsocket.IOサーバーが1つしかない場合に機能します。
クラスタ内の1つのポートに対して複数のsocket.IOリスナーを作成する方法がある場合は、