Html5のwebsockets仕様に非常に興奮していますが、懸念があります。
最近では、ファイアウォールが組み込まれているルーター(有線/無線)を使用して、誰もが一部のネットワークから離れて動作しています。Windowsにもファイアウォールが組み込まれています。
そのことを念頭に置いて、サーバーがwebsocketハンドシェイクを開始したブラウザーに接続しようとすると、大多数のユーザーは失敗しますか? (ほとんどの人はルーターにポート転送を設定する方法を知りません)
それとも私の考えは間違っていますか?それはうまくいきますか?
私はエキスパートではありません(チェックして確認してください)が、通常のHTTP接続を確立してからWebSocketにアップグレードできるUPGRADEメカニズムがあるので、積極的なアプリケーションレベルを実行しない限り、既存のファイアウォールルールが干渉することはありません。パケット検査。接続は引き続きブラウザによって開始されます。
HTML 5 WebSocketはポート転送を必要としません。接続はクライアントから引き続き確立されますが、接続が確立されると、クライアントとサーバーの非対称性はなくなります。 WebSocketは、HTTPSが現在使用しているのと同じCONNECTメカニズムを使用して、プロキシをパンチスルーします。
ファイアウォールは通常、インバウンドトラフィックの拒否とアウトバウンドトラフィックのルーティング(通常はプロキシサーバー経由)のルールを適用するだけなので、通常、特定のWebSocketトラフィック関連のファイアウォールの問題はありません。
プロキシサーバー(およびある程度、特定のロードバランシングルーターも同様)は別の問題です( を参照してください)現在のWebSocketクライアントの実装がプロキシをサポートしていないのはなぜですか? )