[英]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.