作者:手机用户2502855763 | 来源:互联网 | 2023-08-01 03:50
首先ThingsBoard微服务架构目前已经支持的MQTT、HTTP、CoAP、SNMP、LwM2M等协议。但是一些厂商的数据是TCP私有协议并且高度定制化需要扩展Transpor
首先 ThingsBoard 微服务架构目前已经支持的 MQTT、HTTP、CoAP、SNMP、LwM2M等协议。但是一些厂商的数据是 TCP 私有协议并且高度定制化需要扩展 Transport 微服务的情况下需要定制化自己的 transport 。
1.通过队列通信
ThingsBoard一共有几种消息队列用于微服务模块之间通信:
(1)transport 通过 tb.transport.api.requests 将设备鉴权任务交给 tb-core 处理,并通过 tb.transport.api.responses 获取响应。
(2)transport 和 rule_engine 通过 tb.core 队列将消息(会话生命周期事件、属性和rpc订阅)传给 tb-core。
(3)rule_engine 通过 js.eval.requests 将数据交给 js_executer 处理,并通过 js.eval.response 获取响应。
(4)transport 和 integration 通过 tb.rule-engine 将所有设备消息传给 rule_engine。
所以扩展自定义 Transport 也直接对接 queue 消息队列即可。
2.开发 Tcp-Transport
(1)transport-api
需要用到ThingsBoard的 transport-api