我怎么知道Android应用程序重新连接到Socket.io?

时间:2016-11-10 08:07:53

标签: android socket.io

我有一个连接到套接字的Android应用程序,并在connectionData方法上发出onCreate个事件。

// connect to socket
private Socket socket;
{
    try {
        socket = IO.socket(AppConfig.URL_SOCKET_IO);
    } catch (URISyntaxException e) {
        Log.e(LOG_TAG, "error");
    }
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    // emit connect and connection data socket
    socket.connect();
    socket.emit("connectionData", currPlayer.getPlayerID());
}

在服务器端,有activeSockets HashMap存储<connectionData, socket>数据。当应用程序中的Internet连接丢失时,服务器捕获disconnect事件并从HashMap中删除套接字。当应用程序重新连接到互联网时,它也连接到套接字,但应用程序不再发出connectionData,因为只有在创建活动后才会发生。{/ p>

如何检测应用程序重新连接到客户端的套接字,以便我可以再次发出connectionData

1 个答案:

答案 0 :(得分:2)

添加事件监听器:

socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
    @Override
    public void call(final Object... args) {
        socket.emit("connectionData", currPlayer.getPlayerID());
    }
});

有关其他事件的列表,请参阅this Q&A