我正在使用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服务器断开连接客户端。为什么它仍然是ESTABLISHED?
答案 0 :(得分:0)
试试这个
var io = new Server(3305);
io.on("connection", function(socket) {
console.log("connection : " + socket.id);
socket.on("disconnect", function() {
console.log("disconnect : "+ socket.id);
});
});