我有一个连接到套接字的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
?
答案 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。