繁体   English   中英

将MQTTNet Server与MQTT.js客户端一起使用

[英]Use MQTTNet Server with MQTT.js client

我已经像这个例子一样启动了MQTT服务器。 此代码托管在ASP.Net Core 2.0应用程序中,但我试过没有运气的控制台应用程序。

我还使用与上面相同的演示设置了一个客户端,它完美连接。 Android客户端连接也很好。 但是我已经放置了一个MQTT.js客户端网页,但它不会与显示net::ERR_CONNECTION_REFUSED错误的chrome连接。

我认为问题在于服务器不支持Web套接字。 因为如果我用WS类型启动我的客户端它将无法连接。

var options = new MqttClientOptions
{
    Server = "localhost",
    //ConnectionType = MqttConnectionType.Tcp // Connects
    ConnectionType = MqttConnectionType.Ws    // Does not connect
};

现在MQTT.js支持TCP就此链接而言 但我似乎无法工作。

这是我的页面javascript中的代码:

var client = mqtt.connect('tcp://localhost') //Also did mqtt://localhost

client.on('connect', function () {
    client.subscribe('myTopic')
    client.publish('myTopic', 'Hello mqtt')
})

client.on('message', function (topic, message) {
    // message is Buffer
    console.log(message.toString())
    client.end()
})

我想知道如何让javascript MQTT客户端使用TCP? (可能还有其他任何js插件吗?)或者我如何在MQTTNet中启用WebSockets。 谢谢你的帮助。

MQTT.js确实支持Websockets上的本机MQTT和MQTT,但如果您将其嵌入到Web应用程序中,它只能在Websockets上使用MQTT,因为浏览器沙箱不允许它使用任意TCP连接。

至于在代理中启用Websockets我在代码中看不到任何明显的东西,所以你可能不得不提出并针对github项目发出问题以询问细节。

下一版本的MQTTnet(2.5)将通过AspNetCore 2.0支持服务器的WebSocket连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM