刚接触 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-08-18 01:48:07 +08:00 via Android
楼主是前端工程师转行的嘛……
|
2
wekw 2017-08-18 01:48:37 +08:00 via Android
这是不求最好但求最复杂的技术架构呀…
|
4
wekw 2017-08-18 10:48:39 +08:00 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-08-19 21:37:27 +08:00
mark
|
9
xrlin 2018-01-18 13:35:05 +08:00
@icekingcy 后来你用了什么方案?我也是对如何对消息入库( redis/postgresql )的方案有疑问,暂时没想到比较好的方案。
|
11
ghostsf 2019-12-02 17:09:12 +08:00
@icekingcy EMQ 是个消息中间件啊,你相当于是要做一步数据转存,那就直接订阅根 topic,把所有数据都转存到数据库就行了(比如 InfluxDB 之类的时序数据库)。数据展示用接口从数据库实时获取就是了。另外手机控制还是通过 EMQ。 ! 好像是坟贴
|
12
Adaocean 2021-03-17 10:25:06 +08:00
@icekingcy 欢迎在调试测试时使用 MQTT X https://github.com/emqx/MQTTX/issues ~
|