【问题标题】:When MQTT-SN should be used? How is it different from MQTT?什么时候应该使用 MQTT-SN?它与 MQTT 有何不同?
【发布时间】:2014-12-19 06:03:39
【问题描述】:

如果 MQTT 已经是一个轻量级协议,并且它使用少量的功率和带宽,那么为什么我们有 MQTT-SN?什么时候适合使用 MQTT,什么时候适合使用 MQTT-SN?

【问题讨论】:

    标签: mqtt


    【解决方案1】:

    与 MQTT 相比,MQTT-SN(Sensors Network 的 SN)几乎没有优势,尤其是对于嵌入式设备。

    优势

    1. MQTT-SN 使用主题 ID 而不是主题名称。第一个客户端向代理发送带有主题名称和主题 ID(2 个八位字节)的注册请求。注册被接受后,客户端使用主题 ID 来引用主题名称。这节省了媒体带宽和设备内存 - 为每条发布消息在内存中保留和发送主题名称(例如:home/livingroom/socket2/meter)非常昂贵。
    2. 可以在MQTT-SN网关中配置主题名称到主题ID,这样可以在发布前跳过主题注册消息。
    3. MQTT-SN 不需要 TCP/IP 堆栈。它可以在串行链路上使用(首选方式),其中使用简单的链路协议(区分线路上的不同设备)开销非常小。或者,它可以通过 UDP 使用,它比 TCP 更容易消耗。

    缺点

    1. 您需要某种网关,它只不过是移动到不同设备的 TCP 或 UDP 堆栈。这也可以是一个简单的设备(例如:Arduino Uno),只为多个 MQTT-SN 设备提供服务,而不做其他工作。
    2. MQTT-SN 没有得到很好的支持。

    如果您的资源不足,或者您的设备中没有以太网/Wifi,请使用 MQTT-SN。

    【讨论】:

    • 别忘了电池电量。保持 WiFi 或蜂窝网络连接需要大量电力(即使在省电模式下)。 MQTT-SN 实际上支持使用非 IP 网络,例如 BLE,它可以显着降低功耗,但会影响延迟、端到端加密和其他功能。
    • @Ikanab:你的论点绝对有效。你知道支持 MQTT-SN 的消息代理吗?
    • 试试这个:github.com/eclipse/paho.mqtt-sn.embedded-c 另外这个项目使用 MQTT-SN over BLE:blog.benjamin-cabe.com/2017/01/16/…
    • @MichalFoksa 这是一个用 javascript 编写的 mqtt-sn 网关:github.com/Rodmg/aquila-mqtt-sn-gateway
    • @teeeeee 当然,短主题名称可以节省两种协议中的资源。
    【解决方案2】:

    MQTT-SN(其中 SN 表示传感器网络)与 MQTT 不同。 MQTT 通过 TCP/IP,它可以用于 LAN 通信或通过 Internet 和云(如果您的网络中有客户端但代理在 Internet 之外)。 MQTT-SN 可用于更多适用于传感器网络的协议,如 ZigBee、Z-Wave 等。 该规范与 MQTT 不同……所以它不是 MQTT,也不是基于 TCP/IP 的。 它更轻量级,需要一个桥来将 MQTT-SN 消息转换为 MQTT 消息。

    保罗。

    【讨论】:

    • 您能解释一下应该使用 MQTT-SN 的场景吗?以及为什么不能使用 MQTT?
    • 这种情况可能是当您的传感器(在网络内部)不支持 TCP/IP 但它们支持其他协议,如 ZigBee、Z-Wave、BLE ......在这种情况下您不能使用 MQTT,而只能使用 MQTT-SN,因为您没有 TCP/IP 堆栈。
    • 那么 MQTT_SN 是 ZigBee 或蓝牙的替代品吗?如果是这样,我应该在哪里安装代理。在蓝牙的情况下,我们将直接配对 2 台设备并进行通信,无需任何中间努力。但对于 MQTT-SN,我们需要一个代理作为中介。
    • MQTT_SN 超过 ZigBee,它不是替代方案。在传感器网络中,您没有配对设备的概念……您有发布数据的传感器,而执行器数据可以在网络中接收命令,而不是一对一的通信。所以你需要一个代理或其他类型的协议 lize 0MQ(但我从未使用过)
    猜你喜欢
    • 2015-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-30
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    相关资源
    最近更新 更多