afirefish

请教一个问题, Socket 实时消息转发

  •  
  •   afirefish · Jan 6, 2020 · 3174 views
    This topic created in 2352 days ago, the information mentioned may be changed or developed.

    要在 MQTT 和 Websocket 转发实时消息,比如客户端通过 MQTT 发送的消息,要实时通过 Websocket 发送到网页。要考虑并发,请教一下有没有好的设计思路。

    4 replies    2020-01-06 17:25:24 +08:00
    BingoXuan
        1
    BingoXuan  
       Jan 6, 2020   ❤️ 1
    https://juejin.im/post/5adfe731518825670f7b833d

    你够闲的话也可以基于 epoll 自己写一个也可以
    afirefish
        2
    afirefish  
    OP
       Jan 6, 2020
    @BingoXuan 感谢大佬回复,可能是我表述有问题。应用场景是物联网设备通过 mqtt 协议连接并发送数据到服务器,然后服务器转发数据到 web 端(通过 websocket )。这个中间转发过程没有好的思路
    BingoXuan
        3
    BingoXuan  
       Jan 6, 2020
    不是啊,你并不需要自己做转发。文中已经有很详细的解释了,这个服务器直接用 Mosquitto 就好了。MQTT 实际还是个消息队列规范,任何客户端实现这个规范后,就可以通过消息队列服务器订阅其他生产者的信息和发布给其他消费者。

    1: PC 先通过 websocket 协议和 mosquitto 建立连接,同时订阅主题 A.
    2: IOT 设备通过 MQTT 协议和 mosquitto 建立连接。
    3: IOT 设备发布主题 A
    4: mosquitto 将主题 A 发布到它所有的客户端(无论协议是 MQTT 还是 Websocket ),包括 websocket 客户端,所以 PC 也能收到主题

    所以你需要做的是如何分配生产者和消费者。或者你可以考虑使用 HiveMQ,感觉更加简单[官方 demo http://www.hivemq.com/demos/websocket-client/]
    afirefish
        4
    afirefish  
    OP
       Jan 6, 2020
    @BingoXuan 懂你的意思了,感谢大佬!!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5586 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 07:05 · PVG 15:05 · LAX 00:05 · JFK 03:05
    ♥ Do have faith in what you're doing.