vanesxl
@vanesxl

Websocket Почему не срабатывает метод OnClose?

Здравствуйте, пишу клиент ws на с#
Для клиента пользовался этим: https://github.com/sta/websocket-sharp
Делал все по документации, все хорошо работает, но вот почему то если взять и специально выключить сервер, то на клиенте ничего не происходит.
Вот как сделал я:
public static WebSocket ws;
private void wsConnector()
        {
            addLog("Подключаемся");
            using (ws = new WebSocket("ws://127.0.0.1:3322"))
            {
                ws.OnMessage += (sender, e) => onMessage(e.Data);
               
                ws.OnOpen += (sender, e) => onOpen();
                ws.OnError += (sender, e) => onError();
                ws.OnClose += (sender, e) => {
                   
                    addLog("Отключаемся от сервера");
                };

            }
            ws.Connect();
        }
public Form1()
        {
            InitializeComponent();
            wsConnector();
        }

Может я чего то не понимаю, но мне кажется если клиент теряет связь с сервером должно срабатывать событие OnClose, а оно не срабатывает.
Что я делаю не так?
Заранее большое спасибо!
  • Вопрос задан
  • 445 просмотров
Пригласить эксперта
Ответы на вопрос 1
@smozhaykin
С websocket-sharp не работал, но судя по Вашему коду к моменту ws.Connect Ваш сокет уже должен быть невалидным, т.к. при выходе из блока using вызывается Dispose...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы