2016-11-10 6 views
0

私はソケットに接続し、onCreateメソッドのconnectionDataイベントを発するアンドロイドアプリケーションを持っています。サーバー側でAndroidアプリがSocket.ioに再接続したことをどのように知ることができますか?

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

<connectionData, socket>データを格納activeSocketsのHashMapがあります。アプリケーションでインターネット接続が失われると、サーバーはdisconnectイベントをキャッチし、HashMapからソケットを削除します。また、アプリケーションがインターネットに再接続すると、ソケットにも接続されますが、アクティビティが作成されると、アプリはconnectionDataを発行しません。

connectionDataを再度発行できるように、アプリがクライアント側のソケットに再接続したことを検出するにはどうすればよいですか?

答えて

1

は、イベントリスナーを追加します。

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

は、他のイベントのリストについては、this Q&Aを参照してください。

関連する問題