我正在使用 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/