Невозможно подключиться к брокеру 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.

Другие вопросы по тегам