问题1:mqtt云端使用p2p消息推送到终端是支持的吗?
问题2:终端建立连接时,一个主题都不订阅,云端发送p2p 消息到终端,也是支持的吗?
问题1:MQTT 在云端使用 P2P(点对点)消息推送到终端是支持的。通过 MQTT 协议,云端可以充当 MQTT 代理(或服务器),将消息发送给特定的终端设备。这样,云端可以与多个终端设备建立连接,并向它们发送 P2P 消息。
在 MQTT 中,你可以使用 PUBLISH 消息类型将消息从云端发送到指定的终端设备。要发送 P2P 消息,只需在发布消息时指定目标设备的客户端 ID (Client ID)作为主题(Topic),然后将消息发送到该主题。这样,只有订阅了相应主题的终端设备才会接收到该消息。
问题2:终端建立连接时没有订阅任何主题也是支持的。MQTT 协议中,终端设备可以根据自身需求选择订阅感兴趣的主题,而不是在连接时强制订阅任何主题。
如果一个终端设备建立了 MQTT 连接但没有订阅任何主题,云端仍然可以向该终端设备发送 P2P 消息。在发送消息时,只需将目标终端设备的客户端 ID 作为主题,并将消息发布到该主题上即可。该终端设备在接收到消息后,可以处理该消息或者选择订阅相关主题以接收其他消息。
回答1:可以的。
回答2:也可以的。目前用官方sdk,p2p是不需要订阅的。此回答整理至钉群“阿里云 微消息队列 MQTT产品咨询群”。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/