我使用socketio.SocketIO作为service.And连接到节点服务器,当服务重新启动时,在没有关闭socket.io的情况下打开socket.io,这是一个问题。
在服务器side.So上建立多个socketIO连接的设备服务器正在膨胀..
好了!我在android上使用的是gottox/socketio-java-client。
发布于 2014-08-12 19:58:00
检查插座是否已连接或未使用socket.isConnected()。如果套接字已连接,则返回true
发布于 2014-08-12 19:58:34
您可以检查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或类似的东西来检查。
另一种解决方案是捕获断开连接事件并自己跟踪状态。
发布于 2016-02-01 15:21:06
这只是一个想法,所以我不知道它的局限性。请让我知道。
您可以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
});https://stackoverflow.com/questions/25263463
复制相似问题