我已经使用mosquitto broker在我的机器上使用服务器连接tcp套接字实现了mqtt。我完全理解mqtt协议及其帧格式。我想通过webserver发布我的数据,它支持mqtt over websocket。
我怎么能从这件事开始呢?
我不清楚websocket概念
我可以使用tcp实现websocket,还是有任何其他方法。
我是否必须使用http在Web套接字上实现mqtt,以便通过网络服务器发送数据?
由于http和mqtt使用不同的方法来发送或接收数据。
我不想使用像paho这样的现成库。 我对这个socket编程完全不熟悉。任何帮助或指南都将非常感谢!
答案 0 :(得分:0)
Websockets是HTTP协议的扩展,您需要使用格式正确的HTTP请求来设置新的Websocket连接。
一旦建立连接,它就可以用来发送你将通过现有TCP连接发送的完全相同的二进制MQTT数据包。
我建议您使用现有的库(如libwebsockets)来处理Websocket连接设置,然后您应该能够将现有代码连接到仅使用websocket句柄而不是套接字句柄。
如果您真的不想使用库,那么您需要先阅读Websocket RFC https://tools.ietf.org/html/rfc6455