websocket - c语言中基于websocket的MQTT
问题描述
我已经在带有 mosquitto 代理的机器上使用服务器连接 tcp 套接字实现了 mqtt。我已经完全理解了 mqtt 协议及其帧格式。我想通过支持 mqtt over websocket 的网络服务器发布我的数据。
我该如何从这件事开始?
我不清楚 websocket 概念
我可以使用 tcp 实现 websocket 还是有其他方法。我是否必须使用 http 通过 web 套接字实现 mqtt 以通过 web 服务器发送数据?
由于 http 和 mqtt 使用不同的方法来发送或接收数据。
我不想使用现成的库,例如 paho。我对这个套接字编程完全陌生。任何帮助或指导将不胜感激!!!
解决方案
Websockets 是 HTTP 协议的扩展,您需要使用正确格式的 HTTP 请求来设置新的 Websocket 连接。
建立连接后,它可用于发送与通过现有 TCP 连接发送完全相同的二进制 MQTT 数据包。
我建议您考虑使用像 libwebsockets 这样的现有库来处理 Websocket 连接设置,然后您应该能够连接现有代码以仅使用 websocket 句柄而不是套接字句柄。
如果您真的不想使用库,那么您需要先阅读 Websocket RFC https://www.rfc-editor.org/rfc/rfc6455
推荐阅读
- jenkins - Jenkins突然无法识别批处理文件
- selenium-webdriver - 拖放无法使用本机方法正常工作
- javascript - PDF 或 DOC 文件的 IONIC 3 filePath(本机路径)问题
- java - 如何在 java 中读取 docker-compose.yml 文件
- arrays - 如何将csv中的特定元素存储到变量中?
- swift - 我的完成处理程序总是返回一个空数组,为什么?
- oracle - 想要根据 DAY 差异对数据进行四舍五入
- javascript - 通过 Chrome 执行 bat 文件
- google-cloud-platform - 在 GCP 上选择正确的云存储选项
- excel - SUMPRODUCT 在 Excel 的下拉列表中具有重复值