我正在实施 google play 游戏服务实时多人游戏。
目前,如果我关闭一个客户端上的 WIFI,另一个客户端不会检测到连接丢失。没有调用 PeerDisconnect 事件。
1 - API 是否提供任何东西来检查对等方是否仍然连接?
2 - 有没有办法让玩家重新连接到房间?
我正在实施 google play 游戏服务实时多人游戏。
目前,如果我关闭一个客户端上的 WIFI,另一个客户端不会检测到连接丢失。没有调用 PeerDisconnect 事件。
1 - API 是否提供任何东西来检查对等方是否仍然连接?
2 - 有没有办法让玩家重新连接到房间?
1 - API 是否提供任何东西来检查对等方是否仍然连接?
如连接玩家中所述,您可以使用RoomStatusUpdateListener
回调来监控参与者的连接状态。就像声明的那样:
要在所有玩家连接时收到通知,您的游戏可以使用
RoomUpdateListener.onRoomConnected()
回调。您的游戏还可以使用RoomStatusUpdateListener
回调来监控参与者的连接状态。根据参与者的连接状态,您的游戏可以决定是开始还是取消游戏会话。
2 - 有没有办法让玩家重新连接到房间?
实时多人游戏 -游戏玩法指出:
一旦连接了房间所需数量的参与者,房间就被认为是“满员”,游戏就可以开始了。参与者加入房间后,您的游戏可以允许他们离开房间(实际上是让他们退出游戏)。然而,在房间被“填满”后,任何新玩家都不能加入房间(甚至不能填补参与者已经腾出的位置)。
除此之外,参考实时多人游戏的最佳实践:
如果您没有适当地离开房间,Google Play 游戏服务将继续向客户端发送活动和邀请通知。每当发生以下情况之一时,您都应该离开活动房间:
- 游戏结束(例如,玩家赢得了比赛)。
- 当你的游戏进入后台时。
- 在 Android 上,在以下情况下离开房间:
- 玩家在等候室 UI 中取消游戏。
onActivityResult()
回调中 返回的响应码是GamesActivityResultCodes.RESULT_LEFT_ROOM
.- 活动
onStop()
被调用。这可能表明您的 Activity 正在被销毁。在这种情况下,离开房间并打电话disconnect()
。
希望这些链接涵盖了您的所有疑虑。快乐编码!:)