HarmonyOS 鸿蒙Next公共事件模块(commonEventManager)使用上的咨询
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是否使用全局变量;设置订阅回调函数后,订阅回调函数会在接收到事件时触发。
动态订阅公共事件开发指南:
API参考:
2、大量消息发送不建议使用公共事件,公共事件不保证时效。
3、对应的是通用的错误码,参数错误,请检查下写法和各个参数的传入格式是否正确。
4、粘性公共事件必须是系统应用或系统服务, 这个暂无计划放开。
5、针对单个应用,发送数量上限,5ms内不超过20条,订阅者上限为200。
关于HarmonyOS 鸿蒙Next公共事件模块(commonEventManager)的使用咨询,以下是一些专业解答:
- 订阅问题:如果在页面的aboutToAppear中设置订阅无法收到消息,但在点击事件订阅后可以收到,这可能是由于subscriber生命周期问题。请检查subscriber是否使用全局变量,并确保订阅回调函数在接收到事件时能正确触发。
- 消息接收延迟:在taskpool中发送大量消息时,接收端可能会存在延迟。公共事件不保证时效,对于大量消息发送,不建议使用公共事件。
- 错误码问题:若在使用while+Promise发送消息时收到failed,code is 401的错误,这通常表示参数错误。请检查写法和各个参数的传入格式是否正确。
- 粘性事件:粘性公共事件目前仅限于系统应用或系统服务使用,暂无计划放开此限制。
- 性能限制:针对单个应用,发送数量上限为5ms内不超过20条,订阅者上限为200。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。