我使用作为服务运行的socketio.SocketIO连接到节点服务器。并且,当服务重新启动时,打开socket.io而没有socket.io closure.That是一个问题。
在服务器端进行多个socketIO连接的设备。所以服务器正在膨胀..
!我在android上使用gottox / socketio-java-client。
答案 0 :(得分:1)
使用socket.isConnected()
检查套接字是否已连接。
如果已连接套接字,则返回true
答案 1 :(得分:1)
您可以检查socket.connected属性:
var socket = io.connect();
console.log('Connected status before onConnect', socket.socket.connected);
socket.on('connect', function() {
console.log('Connected status onConnect', socket.socket.connected);
});
它是动态更新的,如果连接丢失,它将被设置为false,直到客户端再次获取连接。使用setInterval或类似的东西很容易检查。
另一个解决方案是捕捉断开事件并自己跟踪状态。
答案 2 :(得分:0)
这只是一个想法所以我不知道其局限性。请告诉我。
您可以ping服务器以检查连接是否处于活动状态。
在android中
socket.emit("ping","ping");
socket.on("pong",pingHandler); //EmitterListener
private Emitter.Listener pingHandler=new Emitter.Listener(){
@Override
public void call(final Object... args) {
Log.d("SocketStatus","Connection is active");
});
}
并使服务器返回ping的响应
socket.on("ping",function(data){
socket.emit("pong","pong"); //from your server ex.Node.js
});