node.js - 断开连接后,nodejs socket.io 套接字文件未关闭

标签 node.js socket.io disconnect

我正在使用 Node (v.0.12.4),socket.io(1.3.5),它是服务器。 服务器是 Ubuntu 14.04 LTS。

客户端是使用socket.io库的android,它兼容socket.io 1.X.X ( https://github.com/nkzawa/socket.io-client.java )

我有一个问题。

我运行socket.io服务器(3305端口)并显示文件列表(lsof -i | grep 3305)

**COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME**

**node 135665 root 11u IPv6 516450 0t0 TCP *:3305(LISTEN)**

客户端连接到socket.io服务器并显示文件列表(lsof -i | grep 3305)

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

node 135665 root 11u IPv6 516450 0t0 TCP *:3305(LISTEN)

node 135665 root 14u IPv6 516450 0t0 TCP *:ServerIP(xxx.xxx.xxx.xxx:3305)->AndroidIP(xxx.xxx.xxx.xxx:33972)(ESTABLISHED)

并且android的网络发生了变化,比如wifi变成了lte。

socket.io 服务器因 pingTimeout(60 秒)而断开 Android 客户端连接。并显示文件列表(lsof -i | grep 3305)

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

node 135665 root 11u IPv6 516450 0t0 TCP *:3305(LISTEN)

node 135665 root 14u IPv6 516450 0t0 TCP *:ServerIP(xxx.xxx.xxx.xxx:3305)->AndroidIP(xxx.xxx.xxx.xxx:33972)(ESTABLISHED)

socket.io服务器源是

var io=new Server(3305);
io.sockets.on("connection",function(socket){
console.log("connection : "+socket.id);
socket.on("disconnect",function(){
console.log("disconnect : "+socket.id);
 });
});

我显示 socket.io 服务器断开客户端连接。为什么它保持已建立状态?

最佳答案

试试这个

var io = new Server(3305);
io.on("connection", function(socket) {
    console.log("connection : " + socket.id);
    socket.on("disconnect", function() {
        console.log("disconnect : "+ socket.id);
    });
});

关于node.js - 断开连接后,nodejs socket.io 套接字文件未关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30867258/

相关文章:

javascript/ typescript |类验证器 |自定义验证装饰器 |覆盖 `validationOptions` 方法内的 `validator`

node.js - 从 dist 文件夹运行服务器时,cross NODE_ENV 不起作用

javascript - 验证器错误 JSON

json - 使用socket.io 进行广播?

python - pyqt 断开插槽。新风格

zeromq - 如何在 ZMQ 中删除不活动/断开连接的对等点

javascript - 测试nodejs模块,最好的教程,方法?

javascript - 关闭连接后如何重新连接到websocket

node.js - 如何在 socket.io 客户端聊天应用程序中处理页面重新加载

scala - 如何断开 Scala Remote Actor 的连接?