c#无法连接到websocket服务器

时间:2016-04-27 03:36:49

标签: c# websocket

我正在尝试连接到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

这是我的网址:

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。

这里的连接有什么问题?

1 个答案:

答案 0 :(得分:1)

应该从

更改提供给WebSocketSharp.WebSocket()的字符串
"ws://websocket.vndirect.com.vn/notisocket/noti"

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

您必须将http:https:替换为ws:wss:的原因仅仅是因为WebSocket客户端库(WebSocketSharp)检查方案部分以确定哪个到使用HTTP或HTTPS。如果WebSocket客户端库接受http:https:并在内部将其解释为ws:wss:,则您不必替换方案部分。实际上,存在这样一个WebSocket客户端库。