我正在同步可穿戴设备和智能手机之间的事件。因为我希望即使电话断开也能通过电话接收到事件,所以我开始使用DataAPI而不是MessageAPI,但是现在“同步”大约需要1-2秒,而不是0.1-0.5秒(可感知的时间)。

如果出现消息,我将传输一个字符串路径,例如“/notification/click”和两个字节的原始数据。在使用DataAPI的情况下,我使用路径“/notification/click/1”和一个原始数据字节。您是否也看到了这种行为?除了仅在设备处于脱机状态时才使用DataAPI之外,您是否知道一种技巧来固定它?

如果您想查看一些代码,请发表评论。由于该代码具有很多Boilder Plate代码,因此我尚未添加它。

最佳答案

您可以通过查找已连接的节点 NodeApi.getConnectedNodes() 并查看其是否为空来检查是否已连接。但是我认为这不是最好的解决方案。

如果您既需要快速又可靠地传递信息,请同时发送一条消息并设置一个数据项。为两者都添加一个唯一的标识符,因此您可以忽略第二个标识符。这样,如果您已连接,您将迅速收到一条消息,稍后将忽略该数据项。如果未连接,则消息将丢失,但是数据项将保留并最终使您完成操作。您将需要保留唯一标识符,以处理以下情况:

  • 消息已发送,操作已完成,
  • 出于任何原因,
  • 重新启动,
  • 最终交付的
  • 数据项需要忽略。
  • 10-01 08:00