2016-04-25 32 views
1

我使用的实时多人从这里创建Android游戏:
https://developers.google.com/games/services/android/realtimeMultiplayer
Android的实时多人通知连接丢失

如果两个玩家都连接到一个房间,其中一人的Internet连接被中断,我希望其他玩家得到通知。

目前我没有看到任何在与其他玩家的连接丢失时被调用的监听器。

有什么办法可以管理这个吗?

+0

欢迎来到StackOverflow!请阅读[我如何问一个好问题?](http://stackoverflow.com/help/how-to-ask) –

+0

到目前为止,你做了什么?你能发布你的代码吗?解释你是如何遇到你正试图解决的问题的。 –

+1

@ d.datul1990我正在实现具有onPeersDisconnected()和onP2PDisconnected()方法的接口RoomStatusUpdateListener,但是当播放器断开连接时,将不会调用这些方法。这些方法仅在用户手动退出游戏(房间)时调用,但在无线/移动数据关闭的情况下不会被调用 –

回答

3

我已经用在活动中实现RealTimeMultiplayer.ReliableMessageSentCallback接口,并以下列方式使用替代方法此

@Override 
     public void onRealTimeMessageSent(int statusCode, int tokenId, String recipientParticipantId) { 
      switch (statusCode) { 

       case GamesStatusCodes.STATUS_OK: 
        messageSent = true; 
        break; 

       case GamesStatusCodes.STATUS_REAL_TIME_ROOM_NOT_JOINED: 
        break; 

       case GamesStatusCodes.STATUS_REAL_TIME_MESSAGE_SEND_FAILED: 
        messageSent = false; 
        break; 

      } 
     } 

,但仍是GamesStatusCodes.STATUS_REAL_TIME_MESSAGE_SEND_FAILED被称为后说15到30秒后

0

创建一个监听和检查网络变化

// Indicates the state of Wi-Fi P2P connectivity has changed. 
intentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION); 
+1

已经在使用,看起来有两个玩家之间有一对一的比赛,说玩家1失去了连接可以使用你的解决方案,但是有网络连接的其他播放器(播放器2)需要知道播放器1是否失去连接 –

2

这是一个解决方法,但你试试

  1. 您可以重复发送来自玩家的按摩,以确保 ,球员都连接到网络的每一个说1000 毫秒,

  2. 如果你没有为说2000毫秒得到一个消息,那么有 可能是其他玩家的错误末端