HarmonyOS 鸿蒙Next公共事件模块(commonEventManager)使用上的咨询

发布于 1周前 作者 wuwangju 来自 鸿蒙OS

HarmonyOS 鸿蒙Next公共事件模块(commonEventManager)使用上的咨询

【关键字】

commonEventManager / 动态订阅公共事件

【问题描述】

1、在页面的aboutToAppear中设置订阅, 无法收到订阅消息, 但是点击事件订阅, 可以收到消息。

2、点击事件订阅消息之后, 早taskpool中while循环发送消息, 订阅端收到消息比较慢, 测试有时候发送端数据已经到了20万的下标, 但是接收端才到2万下标。

3、不在taskpool中, 而正常使用while + Promise发送消息, 提示failed, code is 401, message is Parameter error, 公共事件订阅无此错误码解释。

4、粘性公共事件必须是系统应用或系统服务, 这个是否后续会被放开。

5、commonEventManager使用性能方面是否有相关说明? 比如发送数量上限、订阅者上线之类。

【解决方案】

1、大概率是subscriber生命周期问题,检查一下subscriber是否使用全局变量;设置订阅回调函数后,订阅回调函数会在接收到事件时触发。

动态订阅公共事件开发指南:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/common-event-subscription-0000001774280034

API参考:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-commoneventmanager-0000001813576504

2、大量消息发送不建议使用公共事件,公共事件不保证时效。

3、对应的是通用的错误码,参数错误,请检查下写法和各个参数的传入格式是否正确。

4、粘性公共事件必须是系统应用或系统服务, 这个暂无计划放开。

5、针对单个应用,发送数量上限,5ms内不超过20条,订阅者上限为200。

1 回复

关于HarmonyOS 鸿蒙Next公共事件模块(commonEventManager)的使用咨询,以下是一些专业解答:

  1. 订阅问题:如果在页面的aboutToAppear中设置订阅无法收到消息,但在点击事件订阅后可以收到,这可能是由于subscriber生命周期问题。请检查subscriber是否使用全局变量,并确保订阅回调函数在接收到事件时能正确触发。
  2. 消息接收延迟:在taskpool中发送大量消息时,接收端可能会存在延迟。公共事件不保证时效,对于大量消息发送,不建议使用公共事件。
  3. 错误码问题:若在使用while+Promise发送消息时收到failed,code is 401的错误,这通常表示参数错误。请检查写法和各个参数的传入格式是否正确。
  4. 粘性事件:粘性公共事件目前仅限于系统应用或系统服务使用,暂无计划放开此限制。
  5. 性能限制:针对单个应用,发送数量上限为5ms内不超过20条,订阅者上限为200。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部