我的问题是我不明白如何判断玩家何时断开连接。
所以我的游戏包括 2 名玩家,游戏本身可以运行,当一名玩家按预期离开游戏或关闭管理器中的应用程序时,一切都很好,但是当一名玩家失去互联网连接时,什么也没有发生。我尝试通过禁用一名玩家设备上的互联网连接来实现这一点。
当一名玩家离开游戏时,RoomStatusUpdateCallback
按以下顺序调用方法: 1.onDisconnectedFromRoom
2.onPeerLeft
3.onPeersDisconnected
,但是当玩家失去互联网连接时,不会调用任何内容。我想知道一名玩家何时失去连接。
我相信有像ConnectivityManager
这样的东西,所以我可能可以在一个玩家的设备上使用它,但是当RoomStatusUpdateCallback
时,第二个玩家如何知道第一个玩家失去了连接什么也没说?
最佳答案
每当玩家因网络连接或服务器问题而断开连接时,参与者的连接状态都不会更改,直到您调用离开房间。当其他玩家断开连接时,您可以使用 RoomStatusUpdateListener
方法监控房间内参与者的连接状态,如下所示:
1.onDisconnectedFromRoom
2.onPeerLeft
3.onPeersDisconnected
查看全文 documentation关于处理房间创建错误。
我认为您可以尝试在客户端上实现自定义观察者计时器,该计时器将重复 ping 其他对等点以查看它们是否仍处于连接状态。
关于java - Google Play 服务多人玩家的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52246098/