2016-04-27 34 views
1

websocketサーバーに接続しようとしています。c#websocketサーバーへの接続に失敗しました

参考資料はこちらreferenceです。

ただし、例のように動作しません。

コードはOnErrorメソッドに実行されます。

エラーは次のとおりです。ここで

A connection attempt failed because the connected party did not properly 
respond after a period of time, or established connection failed because 
connected host has failed to respond 202.160.125.44:80 

は私のURLです:ここでは

https://websocket.vndirect.com.vn/notisocket/noti 

は私のコードです:

public class NotiSocket 
{ 
    private WebSocketSharp.WebSocket m_webSocket; 
    public NotiSocket() 
    { 
     m_webSocket = new WebSocketSharp.WebSocket("ws://websocket.vndirect.com.vn/notisocket/noti"); 
     m_webSocket.OnMessage += m_webSocket_OnMessage; 
     m_webSocket.OnError += m_webSocket_OnError; 
     m_webSocket.OnOpen += m_webSocket_OnOpen; 
     m_webSocket.OnClose += m_webSocket_OnClose; 
     m_webSocket.Connect(); 
     Console.ReadLine(); 
    } 

    private void m_webSocket_OnClose(object sender, WebSocketSharp.CloseEventArgs e) 
    { 
     Console.WriteLine("Disconnected to websocket server."); 
    } 

    //error on websocket 
    private void m_webSocket_OnError(object sender, WebSocketSharp.ErrorEventArgs e) 
    { 
     Console.WriteLine(e.Message); 
    } 

    //connected to websocket server 
    private void m_webSocket_OnOpen(object sender, EventArgs e) 
    { 
     Console.WriteLine("Connected to websocket server"); 
     //m_webSocket.Send("Hello"); 
    } 

    //receive msg from websocket server 
    private void m_webSocket_OnMessage(object sender, WebSocketSharp.MessageEventArgs e) 
    { 
     Console.WriteLine(e.Data); 
    } 
} 

HTTPから変更する必要があり、なぜ私は理解していません、htppsからws、wss。

ここで接続に問題がありますか?

+0

"ホストは202.160.125.44:80に応答できませんでした"というメッセージが表示されるので、そのIPとポートにアクセスできることを確認してください。何らかの種類のファイアウォールの問題があるように聞こえますか?そのIPとポートにアクセスできることを確認してください。 – MrApnea

+0

確認方法私はそのIPとポートにアクセスできますか?そして、どのようにファイアウォールの問題を解決するには? – anhtv13

+0

telnetの使い方を知っているなら、それを試してみて接続してみてください。ウェブブラウザを使用せずにサーフしている場合は:http://202.160.125.44:80。 (あなたは本当に指定する必要はありません:80それはhttpのためのデフォルトのポートですので80)。面白いのはどんな種類のエラーなのか、それが接続できないというエラーはファイアウォールの問題である可能性があります。試してみてください。 – MrApnea

答えて

1

WebSocketSharp.WebSocket()に与えられた文字列がある

"wss://websocket.vndirect.com.vn/notisocket/noti" 

あなたはws:wss:http:https:を交換する必要が理由に

"ws://websocket.vndirect.com.vn/notisocket/noti" 

から変更する必要があるという理由だけでのWebSocketクライアントライブラリ(WebSocketSharp )は、HTTPまたはHTTPSを使用するかどうかを決定するために、スキーム部分をチェックします。 WebSocketクライアントライブラリがhttp:https:を受け入れ、内部的にそれらをws:wss:と解釈する場合、スキーム部分を置き換える必要はありません。実際、このようなWebSocketクライアントライブラリが存在します。

関連する問題