0

同じマシン (つまり同じ IP) に 2 つの異なるブラウザー (Chrome と Safari) がありますが、両方とも websocket を使用して同じサーバーに接続できるのでしょうか?

私はもう試した。Chrome は正常に接続しますが、Safari は次のようなエラーをスローします。

Error during WebSocket handshake: location mismatch: 
wss://www.mysite.com/sockjs/310/s1a5r_6q/websocket != ws://www.mysite.com/sockjs/310/s1a5r_6q/websocket
sockjs-0.3.js:282Closed transport: websocket SimpleEvent(type=close, code=1006, reason=WebSocket connection broken, wasClean=false)

しかし、これが IP アドレスごとに 1 つの websocket 接続という何らかの制限によるものかどうかはわかりません。

4

4 に答える 4

2

WebSocketプロトコルに関する限り、技術的な制限はありませんが、スパムを防ぐためにIPアドレスごとの未処理の接続試行をレート制限するための仕様が規定されています。たった2つで、この問題が発生しているのではないかと思います。ただし、これをさらに制限する可能性のあるWebSocketサーバーの他のポリシーがある可能性があります。

于 2012-11-21T18:02:35.313 に答える
2

wss ://www.mysite.com/sockjs/310/s1a5r_6q/websocket != ws ://www.mysite.com/sockjs/310/s1a5r_6q/websocket

これは、Websocket 接続が、Websocket 接続を認識しないプロキシを経由したことを示しています。ほとんどの場合、これはサーバー側のリバース プロキシであり、プロキシの背後にあるサーバーから SSL オーバーヘッドをオフロードします。プロキシはクライアントに安全な接続を提供しましたが、サーバーからクライアントへの接続が安全でないことを報告しました。それは正しくありません。

于 2012-11-21T18:05:03.187 に答える
1

もちろん、少なくともブラウザがWebSocketAPIをサポートしている場合は可能です。2つの異なるブラウザも必要ありません。たとえば、Chromeなどの複数のタブでサイトを開くだけで、うまく機能するはずです。

于 2012-11-21T17:59:57.017 に答える