如何检测订阅者 Found/Lost 何时在发布者端发布消息?

How to detect when subscriber Found/Lost published Message at publisher side?

我正在使用 google 的 NearBy Messages API 从服务器(此处为 android 设备)发布一些消息并订阅来自客户端(另一个 android设备) 。

在此我想在服务器端维护客户端的日志计时

但是到现在为止我在API中没有找到任何可以通知以上内容的东西。 如果有任何解决方案,请告诉我。

还有一件事 publishStrategy.BLE_ONLY 一起给出了状态 在 ResultCallback#onResult 喜欢

Status{statusCode=TTL_SECONDS_INFINITE is not currently supported for publishes., resolution=null}

您看过这份开发者指南了吗? https://developers.google.com/nearby/messages/android/pub-sub

  • 当客户端找到消息时,这被称为 public void onFound(消息消息)
  • 当客户端超出范围时,这被称为 public void onLost(消息消息)
  • 发布者无法知道订阅者何时取消订阅,订阅者自己应该知道何时停止订阅。 IE。当它调用取消订阅时。此外,订阅者可以指定 SubscribeCallback 来确定其订阅何时过期或用户停止订阅。请参阅上面的开发人员指南。

对于发布,您现在不能使用 Strategy.BLE_ONLY。您可以使用 Strategy.DEFAULT 进行发布或按照上面指南中的简单示例进行发布。

如果我没看错你的问题,你有一个设置,其中一个 Android 设备发布,第二个 Android 设备订阅。基于此,这里有一些答案:

when client found the published message

发布者无法知道订阅者何时找到消息(除非订阅者也发布,发布者也订阅)。

when client goes out of range

发布者不会知道订阅者何时不在范围内。需要注意两点:1) 订阅者将知道发布者何时超出范围,因为该信息将在 onLost() 中浮出水面,以及 2) 如果两个设备都发布和订阅,您想要实现的内容将成为可能。

when client cancel subscription

同样,在您拥有 AFAIK 的设置中,发布者无法知道订阅者何时停止订阅。