SDK 的目的在于方便用户使用 IDE 集成开发、和模拟调试。
+------------------+
| User's Codes |
+------------------+
| SDK | <==== The SDK Located
+------------------+
| Raw APIs |
+------------------+
| Driver |
+==================+
||
+==================+
| EMQ X Plugin |
+------------------+
因此,SDK 的作用在于封装底层的比较晦涩的数据格式和方法,屏蔽底层细节。直接提供优化 API 供用户使用。
声明: stdin, stdout 已用于和 EMQ X 通信,请不要使用。stderr 用于日志输出。
init deinit函数进行封装,方便用户:
从部署的角度看,代码的依赖关系为:
从文件存放的位置来看,一个标准的部署结构为:
emqx
|
|--- data
|------- extension
|---------- <some-sdk-package-name>
|--------------- <some-classes/scripts-in-sdk>
|---------- <user's classes/scripts>
|
|---------- <another-sdk-package-name>
|--------------- <some-classes/scripts-in-sdk>
|---------- <user's classes/scripts>
它表达了:在 data/extension 目录下安装了两个 SDK,并且用户都基于 SDK 编写了其回调的代码模块。