MQTT 正确的使用姿势是怎样的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
icekingcy
V2EX    问与答

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

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

    请教 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 比较方便。
    icekingcy
        6
    icekingcy  
    div class="badge op">OP
       2017-08-18 11:49:05 +08:00
    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     Solana     3149 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 12:22 PVG 20:22 LAX 04:22 JFK 07:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86