我正在尝试连接到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。
这里的连接有什么问题?
答案 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客户端库。