参考手册 https://mcxiaoke.gitbooks.io/mqtt-cn/content/mqtt/01-Introduction.html
MQTT.fx https://www.maxlicheng.com/embedded/iot/337.html
参考https://blog.csdn.net/zerooffdate/article/details/78950907?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allbaidu_landing_v2~default-6-78950907.nonecase&utm_term=mqtt%20qos2%E8%83%BD%E5%AE%9E%E7%8E%B0%E5%90%97&spm=1000.2123.3001.4430
receive release complete
在物联网中使用mqtt协议是工作在低带宽、不可靠的网络远程传感器和控制设备通讯而设计的协议。 1.它使用了发布/订阅的模式,提供一对多的发布消息。 2.对负载内容屏蔽的消息传输。 3.使用TCP/IP提供网络连接。 4.有三种消息发布质量:
“至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。“至少一次”,确保消息到达,但消息重复可能会发生。“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。在系统设计中有以下几种情景:
某个app发送消息给某一台主机(比如发送设备请求)某台主机发送消息给某个app(比如设备控制的应答)某台主机发送消息给所有登录这么主机的app(比如更新设备状态 ) 为了应对以上三种情况,每个设备都订阅自己的ID+REC的主题,当前设备需要向对方发送消息时就发布对方ID+REC的主题的消息,这样就满足前两种情况。比如用户ID是 13312345678,则订阅主题为“topic/13312345678REC”的消息,当用户需要向主机发送消息的时候,可以通过Mqtt服务器发面主题为“topic/M0011024549REC”的消息。反过来如果主机需要单独向此用户发送消息,则可以发布主题为“topic/13312345678REC”的消息。 对于第三种情况,需要app再单独订阅一个当前用户登录的主机的群发消息,这个消息的主题是为对应主机的ID+BROADCAST,也就是说用户app在登录到某个主机以后,除了订阅自己的ID+REC外,还应该再订阅一个登录主机ID+BROADCAST的主题,比如上面的例子,用户13312345678在登录到M0011024549主机以后还需要再订阅一个“topic/M0011024549BROADCAST”的主题,主机M0011024549在需要向所有登录到该主机的用户发布消息时直接发布主休为"topic/M0011024549BROADCAST"的消息即可,所有登录的用户都可以收到。 设备做成一个mqtt客户端-发布topic----后台mqtt服务器接收数据------后台系统展示mqtt客户端订阅展示参考https://www.cnblogs.com/xueweisuoyong/p/11171804.html
那么单片机的开发中,处理JSON数据虽然有现成的函数库可用,但是对硬件要求就提高了不少,成本自然就上升了。还有处理速度也没有短指令那么快,虽然单片机提高了一个档次,但是因为要处理JSON数据,接收和发送指令时的速度并没有得到显著提升想要提高物联网连接服务器性能,尽可能加大单台服务器的接入量(短指令代替JSON数据包的思路进行开发,对服务器承载能力扩大不只几倍,优化好会提升10几倍甚至更高),那么使用短指令是个必要的选择,再配以相适应的开发方法,会是物联网项目整体性能大幅提升。