1

WebSocket からデータを収集する必要があります。

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

System.Net.WebException: 内部サーバー エラー (500)。

接続に使用するコードは次のとおりです。

        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 ソケットに接続しようとすると、コードはうまく機能します...

他の Websocket との違いは、アドレスが " ws "ではなく" wss "で始まることです (安全な接続のためだと思います)。

Chrome などのブラウザでテストすると、websocket 接続は機能しますが、.Net では機能しません。ブラウザ エージェントをシミュレートするためにヘッダーを追加する必要があるのでしょうか?

サポートのおかげで

4

1 に答える 1

0

最後に、いくつかの検索の後、問題が見つかりました。ヘッダーを ClientWebSocket に追加する必要がありました。

問題は、ClientWebSocket が特定のヘッダーを追加するメソッドを提供していないため、ClientWebSocket を強化する必要があったことです。

このスレッドは、私の問題を解決するのに大いに役立ちます:

ClientWebSocket に「User-Agent」HTTP ヘッダーを設定する

この新しいバージョンの ClientWebSocket を使用して、ヘッダーを追加できました。

于 2016-12-28T08:26:22.510 に答える