在我的多人游戏中我有2个对手。当另一个有网络问题/断开连接时,如何通知1对等体?我期待onPeerLeft
或onPeersDisconnected
被解雇,但没有!
实际上我要实现某种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
}
}
在另一个对等体上,没有引发其他回调(例如onPeerLeft
或onPeersDisconnected
)
有什么建议吗?提前谢谢!
答案 0 :(得分:0)
在调用builder.build()
之前,您可能没有调用setRoomStatusUpdateListener(RoomStatusUpdateListener)编辑:构建器是您的RoomConfig.Builder
答案 1 :(得分:0)
远程对等方将不会收到任何消息来指示断开的连接。这是按设计的(因此可以处理暂时的信号丢失)。
Google代表在此确认了这一点:
https://github.com/playgameservices/cpp-android-basic-samples/issues/53
我已经实现了基于ping的超时。