赞
踩
TCP转MQTT通信实现网页控制花束灯串和网页可视化温湿度(esp8266 51 dht11 MicroPython )
技术解决方案是使用 TCP转MQTT通信系统 可以实现 MicroPython ESP8266实现稳定长时间运行MQTT通信 不掉线死机
使用成熟稳定的tcp通信转mqtt解决根本问题
高度的灵活性和可扩展性:TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,可以支持任意复杂度的应用。而MQTT是基于发布/订阅模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上。因此,在某些需要自定义应用层协议的场景下,TCP协议具有更高的灵活性和可扩展性。
数据传输的可靠性:TCP协议提供数据包的顺序传送和错误检测,确保数据在传输过程中的可靠性。相比之下,MQTT虽然也提供了一定的可靠性保证,例如可以从断开连接等故障中恢复,但在一些对数据可靠性要求极高的场景下,TCP可能会是更好的选择。
全面的网络支持:TCP协议得到了所有主流操作系统和硬件平台的支持,无论是服务器还是客户端,都能轻易实现TCP连接。而MQTT虽然得到了广泛的设备支持,但在某些特定环境或设备上可能无法与TCP相提并论。
强大的并发处理能力:TCP协议支持大规模的并发连接,可以有效地处理海量的网络请求。相比之下,MQTT协议在连接大量客户端的情况下可能需要更多的优化和资源投入。
直接支持所有类型的应用层协议:由于TCP是一种通用的传输层协议,它可以支持任何类型的应用层协议,包括但不限于HTTP、FTP、SMTP等。而MQTT主要是针对物联网设备设计的轻量级通信协议,因此在一些非物联网场景下,TCP可能会是更好的选择。
口号与价值:
让tcp通信设备(或wsSocket设备)实现mqtt通信功能
如:esp8266AT固件也能实现MQTT通信
如:没有mqtt库的设备只有tcp库 也能实现MQTT通信
支持网页 手机APP 小程序 AT固件 嵌入式设备等实现云通信
域名访问 yun.zh1024.com 端口11081
ip访问 103.103.201.245 端口11081
测试主题 id012345678910pw123,其中id是012345678910密码是123
所有设备和客户端只要是在同一个id主题下,都可以相互通信和mqtt主题通信一样
TCP协议和MQTT协议各有其优势,以下是TCP协议相对于MQTT的几个优点:
高度的灵活性和可扩展性:TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,可以支持任意复杂度的应用。而MQTT是基于发布/订阅模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上。因此,在某些需要自定义应用层协议的场景下,TCP协议具有更高的灵活性和可扩展性。
数据传输的可靠性:TCP协议提供数据包的顺序传送和错误检测,确保数据在传输过程中的可靠性。相比之下,MQTT虽然也提供了一定的可靠性保证,例如可以从断开连接等故障中恢复,但在一些对数据可靠性要求极高的场景下,TCP可能会是更好的选择。
全面的网络支持:TCP协议得到了所有主流操作系统和硬件平台的支持,无论是服务器还是客户端,都能轻易实现TCP连接。而MQTT虽然得到了广泛的设备支持,但在某些特定环境或设备上可能无法与TCP相提并论。
强大的并发处理能力:TCP协议支持大规模的并发连接,可以有效地处理海量的网络请求。相比之下,MQTT协议在连接大量客户端的情况下可能需要更多的优化和资源投入。
直接支持所有类型的应用层协议:由于TCP是一种通用的传输层协议,它可以支持任何类型的应用层协议,包括但不限于HTTP、FTP、SMTP等。而MQTT主要是针对物联网设备设计的轻量级通信协议,因此在一些非物联网场景下,TCP可能会是更好的选择。
图片中显示的温湿度是esp8266网络通信模块结合51单片机发出AT指令登录主题 id012345678910pw123 实时发送出来的
图片中显示的温湿度是esp8266网络通信模块结合51单片机发出AT指令登录主题 id012345678910pw123 实时发送出来的
登录id主题成功 返回 [INFO]:ID OK 保持连接状态
登录id主题失败 返回 [INFO]:ID ERR 断开连接状态
未登录id主题发送数据 返回 [INFO]:ID THEME 保持连接状态
设备或者客户端60秒内没有发送数据 断开连接状态(原因:保持心跳,如果超过60秒判断离线)
所有设备和客户端只要是在同一个id主题下,都可以相互通信和mqtt主题一样
1.示例python语言socket代码接入
import socket
# 创建一个socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到服务器
client_socket.connect(('yun.zh1024.com', 11081))
# 向服务器发送数据 登录主题
client_socket.send("id012345678910pw123".encode('utf-8'))
# 接收服务器发送的数据
while 1:
data = client_socket.recv(1024)
print("接收到的数据",data.decode('utf-8'))
# 关闭连接
client_socket.close()
2.示例html js语言WebSocket代码接入
// 创建 WebSocket 连接 const socket = new WebSocket('ws://yun.zh1024.com:11081'); // 连接打开时触发 socket.addEventListener('open', (event) => { console.log('WebSocket 连接已打开:', event); // 向服务器发送数据 登录主题 socket.send('id012345678910pw123'); }); // 接收到服务器消息时触发 socket.addEventListener('message', (event) => { console.log('收到服务器消息:', event.data); }); // 连接关闭时触发 socket.addEventListener('close', (event) => { console.log('WebSocket 连接已关闭:', event); }); // 连接发生错误时触发 socket.addEventListener('error', (event) => { console.error('WebSocket 错误:', event); });
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。