Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MQTT代理如何与客户端(显示设备或任何输出设备)通信_Mqtt - Fatal编程技术网

MQTT代理如何与客户端(显示设备或任何输出设备)通信

MQTT代理如何与客户端(显示设备或任何输出设备)通信,mqtt,Mqtt,MQTT协议适用于发布子概念。客户端可以向代理订阅和发布主题。属于传感器类型的客户端可以向代理发布各自的主题(温度、湿度、开关请求等)。代理将向订阅的客户端(显示设备、任何可以打开和关闭的设备)发送相应的数据。 经纪人通常托管在开放的互联网上 我不明白Broker将如何将信息发送到客户端设备,因为wifi连接的设备通常无法从开放互联网访问,因为不会为此类物联网设备分配公共IP。(我的意思是说,从开放互联网到物联网设备的IP通信不应该成功)到代理的连接是从客户端到代理建立的,因为这是一个出站连接,

MQTT协议适用于发布子概念。客户端可以向代理订阅和发布主题。属于传感器类型的客户端可以向代理发布各自的主题(温度、湿度、开关请求等)。代理将向订阅的客户端(显示设备、任何可以打开和关闭的设备)发送相应的数据。 经纪人通常托管在开放的互联网上


我不明白Broker将如何将信息发送到客户端设备,因为wifi连接的设备通常无法从开放互联网访问,因为不会为此类物联网设备分配公共IP。(我的意思是说,从开放互联网到物联网设备的IP通信不应该成功)

到代理的连接是从客户端到代理建立的,因为这是一个出站连接,就任何家庭路由器/NAT设备而言,它都可以正常工作(与web浏览器打开HTTP服务器连接的方式相同)

连接也是持久的,这意味着客户端将打开它并在客户端的生命周期内保持它的打开状态。这意味着代理始终具有一个打开的连接以将消息转发给客户端


代理在任何时候都不会尝试连接到客户端。

首先,客户端向代理发送订阅请求(无问题)。然后代理可以向客户端发送数据以响应订阅请求。但是,在向客户端发送请求响应后,代理是否能够在生存期内发送所需数量的响应?这是一个TCP连接,这意味着它是双向的,任一端都可以在连接生存期内发送所需数量的信息。