刚接触 MQTT
1、目前想用 EMQ 做 Broker ;
2、Raspberry Pi 采集数据通过 MQTT 协议发送过来
3、用一个 Vertx MQTT Client 订阅通配符主题 # ,收到后将数据做异步 Mysql 存储
4、同时在 3 中开启一个 WebSocket 服务器,给连入的手机转发最新的 消息 做显示,并将手机发出的控制消息发给 Broker,从而发给 Raspberry Pi (订阅了控制消息主题)
问题是如上中的 3、4 步骤,是这样使用的么? 先谢谢大家~
似乎这个架构中的 cloud 是我想要问的...
1
wekw 2017 年 8 月 18 日 via Android
楼主是前端工程师转行的嘛……
|
2
wekw 2017 年 8 月 18 日 via Android
这是不求最好但求最复杂的技术架构呀…
|
4
wekw 2017 年 8 月 18 日 via Android
websocket 没必要,可以统一使用 MQTT 传输所有数据。
|
5
icekingcy OP @wekw 其实我更想问的是 3 中。我需要对所有收到的消息做存储和逻辑处理,是单独开个 MQTT CLIENT 订阅所有消息吗? 我看 EMQ 似乎是一个比较成熟的 BROKER,在手册中似乎没有看到嵌入到别的系统或集成到别的系统中的说明。
也就是说 EMQ 没法提供 一个比较好的处理业务逻辑的实现,只是作为数据的收发处理,用 MQTT 协议保证数据的可靠性(错误理解的话劳烦指正)。所以才想的是通过另外一个服务端( Websocket 协议的,保证多平台适用)既提供业务逻辑的处理,又维护管理着着客户端 App 网络连接。除非就是自己用 Vertx 实现一个 MQTT Server,但是工作量又比较大 重复造轮子了,EMQ 还是有很多拓展可以用的,还有 web gui 比较方便。 |
6
icekingcy OP |
7
MrgHOST 2017 年 8 月 19 日
mark
|
11
ghostsf 2019 年 12 月 2 日
@icekingcy EMQ 是个消息中间件啊,你相当于是要做一步数据转存,那就直接订阅根 topic,把所有数据都转存到数据库就行了(比如 InfluxDB 之类的时序数据库)。数据展示用接口从数据库实时获取就是了。另外手机控制还是通过 EMQ。 ! 好像是坟贴
|
12
Adaocean 2021 年 3 月 17 日
@icekingcy 欢迎在调试测试时使用 MQTT X https://github.com/emqx/MQTTX/issues ~
|