Google Play服务:如何处理对等网络断开连接?

时间:2013-07-11 09:33:20

标签: android google-play-services

在我的多人游戏中我有2个对手。当另一个有网络问题/断开连接时,如何通知1对等体?我期待onPeerLeftonPeersDisconnected被解雇,但没有!

实际上我要实现某种ping机制,这样如果一个对等体在指定的时间内没有收到ping消息,我就可以向用户扔东西(一个指定对手断开的对话框。)

作为替代方案,当出现这种问题时,是否会收听回音?

在断开连接的对等体上,我使用onRealTimeMessageSent回调来检测对等体是否无法发送数据,如下所示:

@Override
public void onRealTimeMessageSent(int statusCode, int token, String arg2) {
    //f the peer can't send data 
    if (statusCode == GamesClient.STATUS_REAL_TIME_MESSAGE_SEND_FAILED) {
        //here I show an error dialog and move out of game
    }
}

在另一个对等体上,没有引发其他回调(例如onPeerLeftonPeersDisconnected

有什么建议吗?提前谢谢!

2 个答案:

答案 0 :(得分:0)

在调用builder.build()

之前,您可能没有调用setRoomStatusUpdateListener(RoomStatusUpdateListener)

编辑:构建器是您的RoomConfig.Builder

答案 1 :(得分:0)

远程对等方将不会收到任何消息来指示断开的连接。这是按设计的(因此可以处理暂时的信号丢失)。

Google代表在此确认了这一点:

https://github.com/playgameservices/cpp-android-basic-samples/issues/53

我已经实现了基于ping的超时。