に設定されています。私が働く会社のセキュリティ部門はsocket.ioリクエストに(正しく)so Access-Control-Allow-Origin: *
です。socket.io CORSアクセス制御許可元が*
このアプリはCORSをまったく使用していませんが、これはsocket.ioリクエストでのみ問題になります。
これは私がサーバーの準備ができた後socket.io開始するために使用しています関数です。
exports.start = (server) => {
io = exports.socketio.socket.listen(server, {
origins: `https://${server.address().address}:*`,
rejectUnauthorized: false,
wsEngine: 'ws',
transports: ['websocket', 'polling']
});
exports.connect();
};
ことで問題が最初ということである: - server.address().address
戻り、この::
ような何か - 私がする必要があります異なるアドレス で複数のサーバ上のアプリケーションを配備する - 以前にそこにはorigins
プロパティはなかったとsocket.ioは*
にorigingを設定しました。私のローカルマシンで解決策をテストするとき、origins to: 'https://localhost:3000'
私はまだいくつかのsocket.io要求のためにAccess-Controll-Allow-Origin: *
を得ています。
誰かがすでにこの問題が発生していますか?
かなり自動化されたserver.address().address
で
ありがとうございました。それはすべて意味があります。私が答えで述べた解決策を試しましたが、動作させることができませんでした。socket.ioバージョン2.0.4を使用しています。 'websocket'をトランスポートとして使用するように設定しても、開始時に' polling'リクエストを送信することはできませんでした。 (おそらく私はまだ行っていないいくつかの設定オプション)。 'origins'オプションのために、私はsocket.io-clientとsocket.ioサーバーの両方のテストサーバーでIPアドレスをハードコーディングしましたが、私はまだAccess-Control-Allow-Originを*に設定していますが、ロードバランサまたはプロキシのために、私はAWSでホストします – matewilk