V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
icekingcy
V2EX  ›  问与答

MQTT 正确的使用姿势是怎样的?

  •  
  •   icekingcy · 2017-08-17 23:30:38 +08:00 · 9066 次点击
    这是一个创建于 2637 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请教 MQTT 的正确使用姿势

    刚接触 MQTT

    1、目前想用 EMQ 做 Broker ;

    2、Raspberry Pi 采集数据通过 MQTT 协议发送过来

    3、用一个 Vertx MQTT Client 订阅通配符主题 # ,收到后将数据做异步 Mysql 存储

    4、同时在 3 中开启一个 WebSocket 服务器,给连入的手机转发最新的 消息 做显示,并将手机发出的控制消息发给 Broker,从而发给 Raspberry Pi (订阅了控制消息主题)

    问题是如上中的 3、4 步骤,是这样使用的么? 先谢谢大家~

    第 1 条附言  ·  2017-08-18 11:51:33 +08:00

    似乎这个架构中的 cloud 是我想要问的...

    13 条回复    2021-11-15 16:30:48 +08:00
    wekw
        1
    wekw  
       2017-08-18 01:48:07 +08:00 via Android
    楼主是前端工程师转行的嘛……
    wekw
        2
    wekw  
       2017-08-18 01:48:37 +08:00 via Android
    这是不求最好但求最复杂的技术架构呀…
    icekingcy
        3
    icekingcy  
    OP
       2017-08-18 10:21:55 +08:00 via iPhone
    @wekw 请问有推荐的吗?请教我
    wekw
        4
    wekw  
       2017-08-18 10:48:39 +08:00 via Android
    websocket 没必要,可以统一使用 MQTT 传输所有数据。
    icekingcy
        5
    icekingcy  
    OP
       2017-08-18 11:19:15 +08:00
    @wekw 其实我更想问的是 3 中。我需要对所有收到的消息做存储和逻辑处理,是单独开个 MQTT CLIENT 订阅所有消息吗? 我看 EMQ 似乎是一个比较成熟的 BROKER,在手册中似乎没有看到嵌入到别的系统或集成到别的系统中的说明。

    也就是说 EMQ 没法提供 一个比较好的处理业务逻辑的实现,只是作为数据的收发处理,用 MQTT 协议保证数据的可靠性(错误理解的话劳烦指正)。所以才想的是通过另外一个服务端( Websocket 协议的,保证多平台适用)既提供业务逻辑的处理,又维护管理着着客户端 App 网络连接。除非就是自己用 Vertx 实现一个 MQTT Server,但是工作量又比较大 重复造轮子了,EMQ 还是有很多拓展可以用的,还有 web gui 比较方便。
    MrgHOST
        7
    MrgHOST  
       2017-08-19 21:37:27 +08:00
    mark
    icekingcy
        8
    icekingcy  
    OP
       2017-08-20 12:05:08 +08:00 via iPhone
    @MrgHOST 没人回答…
    xrlin
        9
    xrlin  
       2018-01-18 13:35:05 +08:00
    @icekingcy 后来你用了什么方案?我也是对如何对消息入库( redis/postgresql )的方案有疑问,暂时没想到比较好的方案。
    icekingcy
        10
    icekingcy  
    OP
       2018-01-19 02:41:26 +08:00 via iPhone
    @xrlin 后来… 项目放下了… 这几天忙完杂事 就继续研究的 有进展我尽量在这说吧
    ghostsf
        11
    ghostsf  
       2019-12-02 17:09:12 +08:00
    @icekingcy EMQ 是个消息中间件啊,你相当于是要做一步数据转存,那就直接订阅根 topic,把所有数据都转存到数据库就行了(比如 InfluxDB 之类的时序数据库)。数据展示用接口从数据库实时获取就是了。另外手机控制还是通过 EMQ。 ! 好像是坟贴
    Adaocean
        12
    Adaocean  
       2021-03-17 10:25:06 +08:00
    @icekingcy 欢迎在调试测试时使用 MQTT X https://github.com/emqx/MQTTX/issues
    cqcsdzmt
        13
    cqcsdzmt  
       2021-11-15 16:30:48 +08:00
    @ghostsf 对,EMQ 当成消息中间件使用。就是不知道有没有成熟的方案做登录鉴权和运行设备订阅发布哪些 topic
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1505 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 23:52 · PVG 07:52 · LAX 15:52 · JFK 18:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.