Невозможно подключиться к брокеру mqtt с помощью клиента JavaScript
Я получаю ошибку
SCRIPT12152: Ошибка WebSocket: сетевая ошибка 12152, сервер возвратил недопустимый или нераспознанный ответ
в IE и
Сбой подключения WebSocket к 'ws://192.168.1.100:1883/': соединение закрыто до получения ответа на рукопожатие
в Chrome.. ниже кусок кода, который я использовал
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<script src="../bower_components/jquery/dist/jquery.min.js"></script>
<script src="../js/mqttws31.js"></script>
<script src="../js/mqttws31-min.js"></script>
<script src="../js/reconnecting-websocket.js"></script>
<script src="../js/reconnecting-websocket.min.js"></script>
<script>
// Create a client instance
client = new Paho.MQTT.Client("192.168.1.100", 1883, "100");
var s = new ReconnectingWebSocket("ws://192.168.1.100:1883");
// set callback handlers
client.onConnectionLost = onConnectionLost;
client.onMessageArrived = onMessageArrived;
// connect the client
client.connect({onSuccess:onConnect});
// called when the client connects
function onConnect() {
alert("connected");
// Once a connection has been made, make a subscription and send
console.log("onConnect");
client.subscribe("/World");
message = new Paho.MQTT.Message("Hello");
message.destinationName = "/World";
client.send(message);
}
// called when the client loses its connection
function onConnectionLost(responseObject) {
if (responseObject.errorCode !== 0) {
console.log("onConnectionLost:"+responseObject.errorMessage);
}
}
// called when a message arrives
function onMessageArrived(message) {
console.log("onMessageArrived:"+message.payloadString);
}
</script>
</body>
</html>
1 ответ
Если вы используете двоичные файлы для Windows, предоставляемые mosquitto, вы должны знать, что они не включают поддержку libwebsockets. Если вам нужна поддержка websockets с помощью mosquitto в Windows, вам нужно будет самостоятельно скомпилировать libwebsockets, а затем скомпилировать mosquitto после включения поддержки websockets.
Стоит также отметить, что в настоящее время поддержка libwebsockets в Windows не так уж велика, в частности, количество подключенных клиентов ограничено 64.