2016-12-28 4 views
0

WebSocketからデータを収集する必要があります。.Net ClientWebSocketを使用してWebSocketからデータを取得

私はこのサイトでのWebSocketをテストしようとした場合:http://www.websocket.org/echo.html私は接続して、問題なくメッセージを送ることができますが、私は私が手.NET Frameworkのライブラリを使用してのWebSocketに接続しよう:

System.Net.WebException :内部サーバーエラー(500)。他のWebSocketとの差があることである

 string uri = "wss://wss.xxx.xxx"; 
     ClientWebSocket webSocket = null; 
     try 
     { 
      webSocket = new ClientWebSocket(); 
      await webSocket.ConnectAsync(new Uri(uri), CancellationToken.None); 
      await Task.WhenAll(Receive(webSocket), Send(webSocket)); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine("Exception: {0}", ex); 
     } 

私は他のWebソケットに接続しようとすると、コードがうまく機能...

私が接続するために使用するコードはこれですアドレスは「ws」の代わりに「wss」で始まります(安全な接続が原因であると考えられます)。

私がChromeのようなブラウザでテストすると、WebSocket connetionは動作しますが、.Netではなく、ブラウザエージェントをシミュレートするためにいくつかのヘッダを追加する必要がありますか?

おかげで最後に

+0

私はあなたのコードをws://echo.websocket.orgで試してみましたが、うまくいきます。 – Mehmet

+0

こんにちはMemmet、はい、それはws://echo.websocket.orgでは動作しますが、使用するwebsocketでは動作しません。 – DarioN1

+0

こんにちはMemmet、はい、それはws://echo.websocket.orgでは動作しますが、使用するwebsocketでは動作しません。 私の答えをチェックすれば、私は接続できるようになりました。ちょうどいくつかのヘッダーとハンドシェイクが追加されました... – DarioN1

答えて

0

をサポートするために、いくつかの検索後、私は問題を見つける:私はちょうどClientWebSocketにヘッダを追加する必要がありました。

問題は、ClientWebSocketが特定のヘッダーを追加するメソッドを提供せず、ClientWebSocketを強制しなければならないということです。

このスレッドは私に私の問題を解決するために大いに役立つ:

Setting "User-Agent" HTTP header in ClientWebSocket

私はヘッダを追加することができたClientWebSocketのこの新しいバージョンを使用します。

関連する問題