【问题标题】:Google Play Services Multiplayer Player's ConnectionGoogle Play Services 多人游戏连接
【发布时间】:2018-09-09 15:42:46
【问题描述】:

我的问题是我不明白如何判断玩家何时断开连接。

所以我的游戏包含 2 名玩家,游戏本身可以运行,当一名玩家按预期离开游戏或关闭管理器中的应用程序时,一切都很好,但当一名玩家失去互联网连接时,什么也没有发生。我尝试通过禁用一名玩家设备上的互联网连接来实现这一点。

当一个玩家离开游戏时,RoomStatusUpdateCallback 按以下顺序调用方法:1.onDisconnectedFromRoom 2.onPeerLeft 3.onPeersDisconnected,但是当一个玩家失去互联网连接时,不会调用任何方法。我想知道一名玩家何时失去连接。

我相信有像ConnectivityManager 这样的东西,所以我可能可以在一个玩家的设备上使用它,但是当RoomStatusUpdateCallback 什么都没说时,第二个玩家怎么知道第一个失去了连接?

【问题讨论】:

    标签: java android google-play-services


    【解决方案1】:

    当玩家断开网络连接或服务器出现问题时,参与者的连接状态不会改变,直到您打电话离开房间。当其他玩家断线时,您可以使用RoomStatusUpdateListener方法来监控房间内参与者的连接状态,如下所示:

    1.onDisconnectedFromRoom
    2.onPeerLeft
    3.onPeersDisconnected

    查看完整的documentation 处理房间创建错误。

    我认为您可以尝试在客户端上实现一个自定义观察者计时器,它会重复 ping 其他对等点以查看它们是否仍然连接。

    【讨论】:

    • 好的,谢谢,我会调查的。目前我实际上做了类似的事情,我每隔一秒向另一个客户端发送消息,如果一个客户端超过 10 秒没有收到消息,则其他客户端假设他已断开连接
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 2016-06-24
    • 2014-09-17
    • 2014-09-17
    • 1970-01-01
    相关资源
    最近更新 更多