2016-09-06 21 views
0

私はシンプルなwebsocketサーバー/クライアントを作成しました。 (私はsignalrでそれをテストし、WebSocketの輸送のハンドシェイク中に同じエラーを持っているため、サーバー技術は無関係ですが) サーバーをC#(System.Net.WebSockes)とクライアントを使用して書かれているではJavaScript です。私は簡単にサーバーに接続し、非常にうまく機能することができますいくつかのクライアントでウェブソケット使用時の奇妙な動作

の1-: 問題があることです。いくつかの他のクライアントに

2 - 私は握手 中にエラーコード1006を取得し、私は、このようなPSiphonとしてプロキシアプリをオンにしたときにこれらのクライアントには、それがサーバーに接続することができます。ただし、約6秒後に切断されます

私は実際には非常に混乱しています、そして最後に、私はここで質問をすることにしました。 私はそれがコードに関連しているとは思わないが、とにかくここに入れている。

var url = 'ws://' + location.host + '/socket'; 
    var socket = new WebSocket(url); 

アップデート1:私は、システム管理者(ホスティング会社)を連絡していると、彼らはそれがあるため、クライアントのISPであるかもしれないと述べました。それは問題の原因となるプロキシサーバーがあるかどうか確認するためのヒントです。

更新2: @vtortolaとして私は自己署名証明書を作成し、Webサイト(IISとPlesk)に追加しました。いくつかの改善が、それでもなっ切断事前に

おかげ..

+2

[ここ](https://en.wikipedia.org/wiki/Capitalization)を参照してくださいそれは '有線'か '奇妙な'、btwでしたか? – TaW

+0

すべてのテストクライアントはローカルホストにありますか? –

+0

私は本当に誰もあなたの情報に基づいて有用なものを教えてくれるとは思っていません。 "いくつかのクライアントで"本当に有用ではない、誰も "いくつかのクライアント"の違いは何を見つけることができます。 – jAndy

答えて

1

それは私へのプロキシの問題のようなにおいがありました。安全な接続(wss://)を使用して、より良いかどうかを確認してください。基本的に、クライアントの一部がプロキシの背後にある場合、WebSocketの接続は多くの予期しない方法で間違っている可能性があります。

How HTML5 Web Sockets Interact With Proxy Servers

+0

自己署名入りの証明書を作成してWebサイトにインストールしましたが、現在はハンドシェイクを通過して接続していますが、約2秒後にすぐに切断されます。 – SHM

+1

ほんの一握りの人に起こった場合、何らかの種類のプロキシが接続を殺しているのは、接続が半減していると思うからです。ワイルドには、通常より長く続くHTTP接続が何らかの機能不全であると思うデバイスがまだあります。プロキシはおそらくあなたのISPネットワークではなく、あなたのクライアントにあります。 – vtortola

+0

ありがとう、いくつかの方法websocketパケットをトレースし、ルート内のどのサーバーが問題を起こしているかを確認する方法です。例えば ​​"tracert"コマンドを使用して間にあるすべてのサーバを見つけ、それから問題を起こしているかどうかを確認するために(websocketを使って)個々のサーバにpingを実行しますか? – SHM