【问题标题】:How to know that Android app reconnected to Socket.io?如何知道 Android 应用重新连接到 Socket.io?
【发布时间】:2017-03-24 04:32:54
【问题描述】:

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

// 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,因为它只会在活动创建后发生。

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

【问题讨论】:

    标签: android socket.io


    【解决方案1】:

    添加事件监听器:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-28
      • 2016-10-08
      • 1970-01-01
      • 2011-11-22
      • 1970-01-01
      • 1970-01-01
      • 2012-06-20
      • 1970-01-01
      相关资源
      最近更新 更多