2015-12-02 161 views
1

对不起,我的英语。我不知道如何检查连接到Android设备。我认为它的确如此mSocket.connected()其返回truefalse但它的返回总是false。我这样做:Socket.io如何检查连接(android)

//code 

try{ 
      mSocket = IO.socket("http://10.0.0.4:8080"); 
     }catch (URISyntaxException e) { 
      Log.e("connect0", "error"); 
     } 

     mSocket.connect(); 
     imChat(); 
//code 
} 

public void imChat() { 

mSocket.once(Socket.EVENT_CONNECT, new Emitter.Listener() { 
      @Override 
      public void call(Object... args) { 
       try { 
       Log.e("connect", "connect"); 
       } catch (Exception e) { 
        Log.e("error", e.toString()); 
       } 

      } 
     }).on(Socket.EVENT_DISCONNECT, new Emitter.Listener() { 
      @Override 
      public void call(Object... args) { 
       try { 
        Log.e("disconnect", "disconnect"); 

       } catch (Exception e) { 
        Log.e("exception", e.toString()); 
       } 
      } 
     }); 

//always false 
Log.e("connect is", String.valueOf(mSocket.connected())); 
} 

回答

1

对不起,响应迟,但其他人可能会发现这很有用: 在回答你的问题检查连接只需

if (socket.connected()==true){ //DO STUFF }

你可能会添加一些代码检查对于连接错误或一般错误。像:

  `.on(Socket.EVENT_ERROR, new Emitter.Listener() { 
       @Override 
       public void call(Object... args) { 
        for(Object o : args){ 
         println "object: " + o.toString() 
         if(o instanceof SocketIOException) 
          ((SocketIOException) o).printStackTrace(); 
        } 
       } 

      })`