Google Play 游戏服务 - 实时多人游戏 - STATUS_CLIENT_RECONNECT_REQUIRED

Posted

技术标签:

【中文标题】Google Play 游戏服务 - 实时多人游戏 - STATUS_CLIENT_RECONNECT_REQUIRED【英文标题】:Google Play Games Services - Realtime Multiplayer - STATUS_CLIENT_RECONNECT_REQUIRED 【发布时间】:2016-06-24 14:07:41 【问题描述】:

我正在尝试在我的 android 游戏中使用 Google Play 游戏服务,但我在调用我重写的 onRoomCreated 方法时遇到了问题。

  @Override
  public void onRoomCreated(int statusCode, Room room) 
    if (statusCode != GamesStatusCodes.STATUS_OK) 
      stopKeepingScreenOn();
      showGameError();
      return;
    
    roomId = room.getRoomId();
    showWaitingRoom(room);
  

状态码总是和GamesStatusCodes.STATUS_OK不同,实际上等于2(+room参数为空),也就是说根据Google:

GoogleApiClient 处于不一致状态,必须重新连接到 解决问题的服务。进一步调用服务使用 当前连接不太可能成功。

但是如果我打电话给getApiClient().reconnect(),没有任何变化。所以我真的很感激任何帮助。有关信息,getApiClient() 来自我扩展的 GameHelper 类,该类在 Android samples page 的库中提供。

【问题讨论】:

【参考方案1】:

onRoomConnected 在客户端尝试创建实时房间时调用。实时房间可以通过调用 createRoom(RoomConfig) 操作来创建,该操作为当前游戏创建一个实时房间。当前游戏连接到房间的生命周期与此 GamesClient 的生命周期绑定。当客户端断开连接时,玩家将离开房间,并且该玩家的所有点对点连接都将被断开。

您可以访问此page 了解更多信息。

如果您忘记了什么,也可以查看document,了解如何使用 Google Play 开发者控制台设置 Google Play 游戏服务。

【讨论】:

看来我最近解决了我的问题。问题是由于我试图使用 Google Play 游戏服务 而不生成签名的 APK,该证书与我在 中将链接的应用程序添加到我的游戏服务时使用的证书相同Google Play 开发者控制台. 大卫巴伦是对的。我改变了我的笔记本电脑,在那里我编写了我的应用程序的第一个版本。所以我必须添加一个新的 OAuth 2.0 客户端 ID,它有我的新 SHA1 密钥(来自我的新笔记本电脑)。

以上是关于Google Play 游戏服务 - 实时多人游戏 - STATUS_CLIENT_RECONNECT_REQUIRED的主要内容,如果未能解决你的问题,请参考以下文章

Google Play 游戏服务 - 实时多人游戏 - STATUS_CLIENT_RECONNECT_REQUIRED

如何在使用 Google Play 游戏服务的实时多人游戏中使用机器人玩家?

如何在实时多人游戏 Google Play 游戏服务中向其他参与者发送有关房间创建的数据

当应用程序进入后台时,实时多人 Google Play 游戏服务对等方断开连接

我可以在 Unity Android Free 中使用 Google Play 游戏服务 - 实时多人游戏吗?

Google Play 游戏服务 (GPGS) 实时多人游戏 (RTMP) 在 Android 上永远无法匹配(iOS 工作)