对等点断开连接与对等点离开房间有什么不同。
如果参与者与房间断开连接,他的状态会是什么? STATUS_JOINED 还是 STATUS_LEFT?
我正在开发一款相当长的回合制游戏(应该是几分钟的游戏),我相信会有很多我想解决的断开连接情况。
是否可以向已断开连接的用户重新发送邀请并让他返回房间?
如果房间创建者断线,并且预览是可能的,那么在重新连接后他仍然是该游戏的创建者吗?
最佳答案
首先需要注意的是,实时多人游戏 API 并不真正适用于回合制游戏。因此,如果有人从房间中删除,则无法重新添加;此外,如果您的事件进入后台,您将无法留在房间中。现在,回答这个问题:
如果参与者离开房间,他们的状态为 STATUS_LEFT。如果他们在房间中但尚未到达(即玩家尚未成为 P2P 连接图的一部分),则他们可能处于 STATUS_JOINED 状态,但尚未连接。此外,由于存在错误,您可能会看到某个参与者的状态为 STATUS_LEFT,但仍报告为已连接。因此,在检查参与者是否“真的在那里”的逻辑中,您应该检查他们是否处于 STATUS_JOINED 状态并且已连接(不仅仅是其中之一)。
您无法向已断开连接的用户重新发送邀请以让他们返回房间。但如果所有玩家都有游戏状态,那么没有什么可以阻止你从头开始 build 一个新房间来继续游戏。当然,这不适用于自动匹配(因为您无法请求与旧房间具有相同参与者的新房间),但当玩家与圈子中的 friend 一起玩时,这会起作用。
不存在“房间所有者”这样的东西——这是一个 P2P 对称网络。如果玩家 A 创建了房间并邀请了玩家 B 和玩家 C,则玩家 A 可以离开该房间,并且该房间仍然对玩家 B 和 C 有效。不要求房间的创建者留在房间中。
希望这有帮助!
关于google-play-games - 当对等方与 Google Play 服务中的房间断开连接时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19202066/