ubus简介

1、简介

        ubus为openwrt平台开发中的进程间通信提供了一个通用的框架。它让进程间通信的实现变得非常简单。

        ubus实现的基础是unix socket,即本地socket,它相对于用于网络通信的inet socket更高效,更具可靠性。unix socket客户端和服务器的实现方式和网络socket类似。

2、如何实现一个简单的unix socket服务器和客户端

        2.1、建立一个socket server端,绑定到一个本地socket文件,并开启对clients连接的监听。

        2.2、建立一个或多个socket client端,连接server。

        2.3、client和server相互发送消息。

        2.4、client或server收到对方消息后,针对具体消息进行相应处理。

ubus简介_第1张图片

3、ubus通信框架

        ubus同样实现了上述组件,并对socket连接以及消息传输和处理进行了封装,

        ubus提供了一个socket server:ubusd。因此开发者不需要自己实现server端。

        ubus提供了创建socket client端的接口,并且提供了的客户端供用户直接使用:

4、ubus消息格式及有效通信的方式

ubus对client和server之间通信的消息为json格式,

ubus对client端的消息处理抽象出对象(object)”和“方法(method)”的概念。一个对象中包含多个方法,client需要向server注册自己的处理方法。对象和方法都有自己的名字,请求方只需在消息中指定要调用的对象和方法的名字即可。

5、ubus引用的一些动态库

         5.1、 libubus.so:创建socket,进行监听和连接,发送消息等接口函数。

         5.2、libubox.so:等待和读取消息。

         5.3、libblobmsg.so,libjson.so:提供了封装和解析json数据的接口,编程时不需要直接使用libjson.so,而是使用libblobmsg.so提供的更灵活的接口函数。

         使用ubus进行进程间通信不需要编写大量代码,只需按照固定模式调用ubus提供的API接口即可。

你可能感兴趣的:(网络通信)