2016-04-27 6 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 to ws, wss.

И что случилось с соединением здесь?

+0

Поскольку он говорит, что «хозяин не ответил 202.160.125.44:80», вы проверяете, имеете ли вы доступ к этому ip и порту? Похоже, что могут быть какие-то проблемы с брандмауэром? Убедитесь, что у вас есть доступ к этому ip и порту. – MrApnea

+0

Как проверить, что у меня есть доступ к этому ip и порту? И как решить проблемы с брандмауэром? – anhtv13

+0

Если вы знаете, как использовать telnet, вы можете попробовать это и просто попытаться подключиться и увидеть, что он говорит. Если вы не пользуетесь веб-браузером и просто занимаетесь серфингом: http://202.160.125.44:80. (Вам действительно не нужно указывать: 80, поскольку это порт по умолчанию для http). Возможно, что вы получаете сообщение об ошибке, что такое ошибка, ошибка, которую вы не можете подключить, может быть проблемой межсетевого экрана, если есть что-то еще, что может быть в порядке. Попробуйте и сообщите нам об этом. – MrApnea

ответ

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.

Смежные вопросы