如何在android上检查socket.io connect或disconnect?

时间:2014-08-12 11:45:55

标签: android node.js websocket socket.io

我使用作为服务运行的socketio.SocketIO连接到节点服务器。并且,当服务重新启动时,打开socket.io而没有socket.io closure.That是一个问题。

在服务器端进行多个socketIO连接的设备。所以服务器正在膨胀..


!我在android上使用gottox / socketio-java-client。

3 个答案:

答案 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
});