我有一个从c#客户端连接到node.js服务器的应用程序在c#客户端,我使用socket4net和websocket4net
使用nodejs和socket.io当我关闭程序(c#)时,断开连接事件没有发送到服务器。所以我得到了错误:
socket error error: read ECONNRESET at errnoexception (net.js: 558:19)
,但如果我使用套接字。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");
有谁能帮帮我吗?非常感谢这显然是一个老问题,但我实际上昨天有这个问题,所以我不妨把它贴出来。解决方法是为程序的onClose创建一个事件并调用socket.Close()。
对于我来说,我使用WPF所以在我的xaml:
& lt; x窗口:类= "的例子。主窗口"…关闭= " Window_Closing ">
和后面的代码:
private void Window_Closing(对象发送者,CancelEventArgs e){socket.Close ();}