Как отключиться от 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(); }