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, а оно не срабатывает.
Что я делаю не так?
Заранее большое спасибо!
  • Вопрос задан
  • 434 просмотра
Пригласить эксперта
Ответы на вопрос 1
@smozhaykin
С websocket-sharp не работал, но судя по Вашему коду к моменту ws.Connect Ваш сокет уже должен быть невалидным, т.к. при выходе из блока using вызывается Dispose...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы