3

我有一个从 c# 客户端连接到 c# 客户端中的 node.js 服务器的应用程序我在服务器中使用 socketio4net 和 websocket4net 我使用 nodejs 和 socket.io

当我关闭我的程序(c#)时,断开连接事件没有发送到服务器。所以我得到了错误:

套接字错误错误:在 errnoExeption 读取 ECONNRESET (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");

谁能帮帮我吗?非常感谢

4

1 回答 1

0

这显然是一个老问题,但实际上我昨天遇到了这个问题,所以我不妨发布它。解决方案是为程序的 onClose 创建一个事件并调用 socket.Close()。

对我来说,我在我的 xaml 中使用 WPF:

<Window x:Class="Example.MainWindow" ... Closing="Window_Closing">

在后面的代码中:

private void Window_Closing(object sender, CancelEventArgs e) { socket.Close(); }

于 2015-08-18T14:15:06.487 回答