润小云解读鸿蒙OS系列(六):分布式软总线之discovery+COAP全流程
简介 Discovery 是一种基于coap 通信协议的设备发现机制;Coap(Constrained Application Protocol)是一种可以使用在资源受限的物联网设备上,并支持可靠传输的轻量化类web协议。它详细规范定义在 RFC 7252, coap 协议支持IP多播, 即可以同时向多个设备发送请求,鸿蒙OS的设备发现功能也是基于这个特性;用户使用discovery功能时,需要保证发现端设备与被发现端设备在同一个局域网内,并且都能收到对方coap协议报文;目前discovery服务仅支持基于Wi-Fi通信方式的设备发现机制。 代码分析 代码目录结构如下图: Discovery 对外提供PublishService() 接口来实现设备的发现功能,其函数实现解读如下: PublishService主要的代码流程图如下,由于篇幅有限我们本次不做详细的介绍。 被发现端主要是通过PublishService()这个函数发布服务。PublishService()函数的实现在discovery_service.c文件中,我们来看看这个函数的主流程代码; 函数参数三个: mo...

