5

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

在消息的情况下,我正在传输一个字符串路径,如“/notification/click”和两个字节的原始数据。对于 DataAPI,我使用路径“/notification/click/1”和一个字节的原始数据。你也看到这种行为了吗?除了仅在设备离线时使用 DataAPI 之外,您是否知道一个技巧来解决这个问题?

如果您想查看一些代码,请发表评论。由于该代码有很多样板代码,我没有添加它(还)。

4

2 回答 2

2

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

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

  1. 消息已发送,操作已完成,
  2. 不管什么原因重启,
  3. 最终交付的数据项,需要忽略。
于 2015-03-01T18:11:56.467 回答
0

是的,在我的测试结果中,data API 比 message api 慢(不是几次,是上面的两倍),你可以尝试一种方法来提高你的消息速度。data api 有一个特性,它可以发送支持数据大小可以大于 100KB 的资产,但 message api 不支持大于 100KB 的数据大小。使用发送消息的通用接口,检查你要发送的数据大小,如果大于100KB,使用数据API资产发送,如果没有,使用消息API。这是我加快我的应用程序

于 2015-03-05T05:21:55.840 回答