对不起我的英语不好。我不知道如何检查连接到android设备。我认为它的确像这样mSocket.connected()它的返回truefalse但它的返回总是false。我喜欢这样:

//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()));
}

最佳答案

很抱歉收到您的回复,但其他人可能会发现这很有用:
在回答您的问题时只需检查连接

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();
                    }
                }

            })`

10-07 18:30