首页 > 解决方案 > c语言中基于websocket的MQTT

问题描述

我已经在带有 mosquitto 代理的机器上使用服务器连接 tcp 套接字实现了 mqtt。我已经完全理解了 mqtt 协议及其帧格式。我想通过支持 mqtt over websocket 的网络服务器发布我的数据。

我该如何从这件事开始?

我不清楚 websocket 概念
我可以使用 tcp 实现 websocket 还是有其他方法。我是否必须使用 http 通过 web 套接字实现 mqtt 以通过 web 服务器发送数据?
由于 http 和 mqtt 使用不同的方法来发送或接收数据。

我不想使用现成的库,例如 paho。我对这个套接字编程完全陌生。任何帮助或指导将不胜感激!!!

标签: websocketmqtt

解决方案


Websockets 是 HTTP 协议的扩展,您需要使用正确格式的 HTTP 请求来设置新的 Websocket 连接。

建立连接后,它可用于发送与通过现有 TCP 连接发送完全相同的二进制 MQTT 数据包。

我建议您考虑使用像 libwebsockets 这样的现有库来处理 Websocket 连接设置,然后您应该能够连接现有代码以仅使用 websocket 句柄而不是套接字句柄。

如果您真的不想使用库,那么您需要先阅读 Websocket RFC https://www.rfc-editor.org/rfc/rfc6455


推荐阅读