3

ポート80でホストされていないWebSocketサーバーは、インターネットブラウザからは見えませんか?

ポート80(IISで使用されている)を443でも8080でも使用できません。

カスタムポートでホストされているWebSocketにはファイアウォールの問題がありますか?

唯一の方法は、IIS8を使用して同じポート(80)を共有することです。(私はSuperWebSocketライブラリでIIS7を使用しています)

ブラウザからアクセスするWebSocketは、カスタムポートにデプロイしないでください。

前もって感謝します。

4

3 に答える 3

1

あなたの質問の核心をつかむために、私は私のWebサーバーとWebソケットサーバーの両方がポート80にあるが、異なるホスト(オリジン)にある可能性があることに気づき、最も成功しました。Web Socket ServerがWebページオリジンからのCORSリクエストを処理できる限り、これはファイアウォールの問題を回避し、Webサーバーからの静的コンテンツとWebSocketサーバーからの動的コンテンツを持つアーキテクチャにつながる方法のようです。

つまり、ストーリーは次のとおりです。

  • web.server.com:80からページを提供します(これが原点です)

  • そのWebページのアプリケーションスペースで、WebSocketをwebsocket.server.com:80/serviceNameに開きます。

    (websocket.server.comによって許可される必要があるクロスオリジンリクエストを作成します。これにより、web.server.comがホワイトリストに登録される場合があります)

  • 動的コンテンツと静的コンテンツを別々に喜んで提供します。

あなたの質問のいくつかに対するいくつかのより具体的な答え:

ポート80でホストされていないWebSocketサーバーは、インターネットブラウザからは見えませんか?

いいえ。ブラウザのアプリケーションは、CORSの制約に従い、必要に応じて他のポートに対してWebSocketを開くことができます。多くの場合、WebSocketをポート80に保持しておくと、仲介者やエッジゲートウェイがファイアウォールルールを変更する必要がないため、有利です。

ポート80(IISで使用されている)を443でも8080でも使用できません。カスタムポートでホストされているWebSocketにファイアウォールの問題がありますか?

ほとんどの場合、ファイアウォールを制御していて、他のポートを開くことができない場合を除きます。

于 2012-08-02T17:26:34.900 に答える
1

ファイアウォールを制御できる場合は、カスタムポートでWebSocketサーバーを実行しても問題はありません。そのポートへの着信トラフィックを許可するには、ポートを開く必要があります。

問題は、実際にはファイアウォール自体ではなく、トラフィックがサーバーに到達する前に発生する他のタイプのフィルタリング、プロキシ、負荷分散などです。ただし、言及していない特定の要件がない限り、そのポートでトラフィックを許可するだけで問題は発生しません。

WebSocketサーバーが特定のオリジン(CORS)への接続を制限するように構成されている場合は、オリジンが接続できるようにする必要があります。オリジンは、WebSocketリクエストを行うWebページを提供するWebサーバーのアドレスです。デフォルトは通常、ワイドオープンであるか、WebSocketサーバー自体のアドレスに制限されています。

于 2012-08-02T17:31:50.530 に答える
1

ここによると:

警告:サーバーは選択した任意のポートでリッスンできますが、80または443以外のポートを選択した場合、ファイアウォールやプロキシに問題がある可能性があります。ポート443での接続はより頻繁に成功する傾向がありますが、もちろん、安全な接続(TLS / SSL)が必要です。また、ほとんどのブラウザ(特にFirefox 8以降)では、安全なページから安全でないWebSocketサーバーへの接続が許可されていないことに注意してください。

于 2015-02-15T05:08:04.210 に答える