Как отключиться от socketio4net

У меня есть приложение, которое подключается от клиента C# к серверу node.js в клиенте C#. Я использую socketio4net и websocket4net на сервере. Я использую nodejs и socket.io.

Когда я закрывал свою программу (C#), событие отключения не было отправлено на сервер. поэтому я получил ошибку:

Ошибка сокета: прочитайте ECONNRESET в errnoExeption (net.js: 558:19)

но если я использую клиент socket.io (javascript) вместо C#, когда я закрываю браузер, все работает хорошо, это мой код:

server.js:

var io= require('socket.io').listen(3000);
io.on('connection', function (socket) {  
    socket.on('disconnect', function () {
    // handle here
    })
})

клиент C#:

client = new Client("http://127.0.0.1:3000/");
socket = client.Connect();

клиент javascript:

io.connect("127.0.0.1:3000");

Кто-нибудь может мне помочь, пожалуйста! Спасибо большое

1 ответ

Это явно старый вопрос, но у меня вчера была эта проблема, так что я мог бы также опубликовать ее. Решением было создать событие для onClose программы и вызвать socket.Close().

Для меня я использую WPF, поэтому в моем xaml:

И в коде позади:

private void Window_Closing (отправитель объекта, CancelEventArgs e) { socket.Close(); }

Другие вопросы по тегам