【发布时间】:2020-06-21 12:09:56
【问题描述】:
我阅读了 MQTT-SN 规范,但我不确定它是否也可以支持请求-响应模式。有谁知道吗?
试图实现这样的东西...... http://www.steves-internet-guide.com/mqttv5-request-response/
MQTT v5 发布命令可以指定响应主题,如 MQTT v5 规范中所示: https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html
4.10.1 基本请求响应(非规范) 请求/响应交互过程如下:
MQTT 客户端(请求者)向主题发布请求消息。请求消息是具有响应主题的>应用程序消息。
另一个 MQTT 客户端(响应者)订阅了与发布请求消息时使用的主题名称匹配的主题过滤器。结果,它接收到请求消息。 >可能有多个响应者订阅了该主题名称,也可能没有。
响应者根据请求消息采取适当的行动,然后将>响应消息发布到请求>消息中携带的响应主题属性中的主题名称。
在典型用法中,请求者订阅了响应主题,从而接收到 >响应消息。但是,其他一些客户端可能订阅了响应主题,在这种情况下,该客户端也将接收和处理>响应消息。与请求消息一样,发送响应消息的>主题可以被多个客户端订阅,也可以不被订阅。
MQTT-SN 规范在这里 http://mqtt.org/new/wp-content/uploads/2009/06/MQTT-SN_spec_v1.2.pdf
只是写法不同,我不知道是否支持此功能。
最终,对于某些消息,我需要有一个不能留给 pub/sub fire and forget 模式的响应。连接需要 MQTT-SN v1.2,因为它通过 BLE 并且不支持 TCP/IP,因此没有常规的 MQTT v5。
我想我可以组成一个“响应主题”字段来放入接收客户端可以处理和响应的请求的有效负载中。但是,MQTT-SN v1.2 规范是否已经支持它?
【问题讨论】:
标签: mqtt ios-mqtt-client-framework