求教大神,分布式软总线的流程问题
在源码中看分布式流程时:
1. int PublishService(const char *moduleName, const struct PublishInfo *info, const struct IPublishCallback *cb)
这个PublishService的具体作用是什么,应该怎么理解?在一些大神的博文中调用这个方法初始化软总线,我个人理解是主要是类似发布订阅功能中发布某个功能特性标记的topic,初始化软总线的功能只是次要的,在检测软总线未初始化的情况下进行初始化操作。感觉和大神的理解有些偏差,请问这个应该怎么理解?
2.在OpenHarmony中系统在启动时有没有PublishService的动作,还是说需要我们手动去调用下PublishService,才能收到其他设备的UDP 广播消息
3.在流程中有没有发现设备自动连接的流程,还是需要手动调用API去连接,如果时手动连接请问下具体时哪个API?C比较菜,看了半天没找到对应的接口
分布式软总线
赞
收藏 0
回答 1
已解决
相关问题
分布式软总线能否支持全协议
8410浏览 • 1回复 已解决
如何理解鸿蒙的分布式软总线技术?
8110浏览 • 1回复 待解决
鸿蒙系统的分布式软总线如何实现设备间通信?
129浏览 • 1回复 待解决
分布式软总线可以实现,跨网络,远程互联么?
6208浏览 • 2回复 已解决
liteos-a的分布式软总线的设备发现api是什么
8445浏览 • 2回复 待解决
HarmonyOS的分布式软总线技术是什么?它在开发中有何应用?
139浏览 • 0回复 待解决
分布式软总线可以理解为是注册中心吗?各个设备统一注册到软总线中。
14093浏览 • 1回复 待解决
HarmonyOS NEXT如何通过增强分布式软总线技术提升设备间通信效率?
519浏览 • 1回复 待解决
分布式服务和分布式数据底层均为分布式软总线?如果这样的话,数据在高频上报的情况下,如何保证控制的优先
8339浏览 • 1回复 待解决
怎么在串口中输出HiLog日志,需要看分布式相关的业务流程,有没有大神指导一把的?
3636浏览 • 1回复 待解决
新手问题求教各位大神!
2715浏览 • 1回复 待解决
求解Redis 分布式锁问题?
3732浏览 • 1回复 待解决
鸿蒙软总线和nearbyService的5个问题
6504浏览 • 1回复 待解决
Redis 模板的分布式锁
3084浏览 • 1回复 待解决
分布式是怎么启用的?
5190浏览 • 1回复 待解决
Harmonyos 分布式迁移失败
3123浏览 • 0回复 待解决
分布式存储数据的方法
396浏览 • 1回复 待解决
求解分布式数据库使用问题?
4357浏览 • 1回复 待解决
分布式跟踪如何实现?
443浏览 • 1回复 待解决
分布式恢复数据的方法
407浏览 • 1回复 待解决
分布式数据库选型问题有知道的吗?
3748浏览 • 1回复 待解决
鸿蒙系统是如何实现分布式的?
13054浏览 • 2回复 待解决
鸿蒙系统的分布式能力是什么?
273浏览 • 0回复 待解决
PolarDB分布式架构有什么特点?
3548浏览 • 1回复 待解决
如何使用鸿蒙的分布式任务调度(DTS)?
154浏览 • 0回复 待解决
我目前的理解:
1. 平台调用PublishService()时,是向软总线环境(OHOS目前看起来只支持wifi环境,但我的Hi3516开发板用有线网络连接到网络中也可以,华为自用的鸿蒙,应该至少还支持BT)发布本平台支持的能力,一个平台(目前)最多能同时发布三个能力(MAX_MODULE_COUNT = 3),能力列表见CapabilityMap g_capabilityMap的定义。
平台首次PublishService()的时候,会初始化平台端的软总线环境,发布服务成功,将会打开并监测本地的特定端口,随时接收发现端的广播信息,并做出响应,这个响应包括了很多内容,但简单来说就是接收发现端广播/单播的数据,进行处理,向发现端返回数据的处理结果。
2. Hi3861平台的轻量系统没有自动调用PublishService()的地方,需要你自己手动调用来PublishService();
Hi3516平台的小型系统,
[dmslite] SYS_SERVICE_INIT(Init)# dtbschedsrv
[dmslite_feature] SYS_FEATURE_INIT(Init): dmslite
[dmslite_feature] OnInitialize(): InitSoftbusService()-->>softbus
[dmslite_session] InitSoftbusService(): PublishService(dms)
在注册和初始化dmslite feature时,会自动发布dms服务。
3. 发现端和被发现端的第一阶段的发现和连接过程,猜测应该是自动完成的,但是目前我没法验证,因为我的手机端还没能正常发现和连接上开发板,估计是因为发现端和被发现端设备需要登录同一个华为账号,而我的开发板,不知道如何登录华为账号~~
猜测账户验证成功后,应该会进入第二阶段的数据交换过程,这一阶段会有:
.onBytesReceived = OnBytesReceived,
.onSessionOpened = OnSessionOpened,
.onSessionClosed = OnSessionClosed
这样的函数来对session和data进行处理,具体如何处理,应该是开发者来定义的。
遗憾的是我也还没能验证是否如此。
4.我对软总线组件做了一些梳理,但是因为手机没法连接开发板,还没能做出验证,也就不好直接发表总结性的文章。