在 windows 中通过 websocket 启用 mosquitto

Enabling mosquitto over websocket in windows

我在 Visual Studio 上构建了 mosquitto,启用了 websockets,使用 Cmake 生成项目文件。我使用了 libwebsockets-1.4 。

我 运行 这个代理有一个 websocket 侦听器,如下图它开始通过 websockets 侦听端口 8000。

现在我使用 PAHO websocket 客户端并尝试连接到代理

client = new Paho.MQTT.Client("localhost", 8000, "abc123");

client.connect({onSuccess:onConnect});

function onConnect() {
    console.log("onConnect");
}

即使使用详细的日志记录,我也看不到代理日志中的任何内容。在浏览器控制台中,我得到

WebSocket connection to 'ws://localhost:8000/mqtt' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET

之后我用 test.mosquitto.org:8080 试了一下,没问题。

PS :然后我尝试了 mosquitto 1.4.7 和 libwebsocket 1.6 的组合,导致以下构建错误,请建议我修复。

下一次尝试使用 mosquitto 1.4.2 和 libwebsockets 1.4,用它构建 mosquitto 没有问题。当我使用常规的 tcp 客户端时它工作正常,当从 websocket 客户端发送连接消息时 mosquitto.exe 崩溃。

可能出了什么问题,我该如何解决这个问题?任何在 windows 上成功部署支持 websocket 的 mosquitto 的人请帮忙。

我通过使用 mosquitto 1.4.7 和 libwebsockets 1.5 成功地构建了支持 websocket 的 mosquitto。