Первое тестирование библиотеки JavaScript MQTT Paho, и следующий код является примером по умолчанию, представленным в документации.Как только я пытаюсь использовать подстановочный знак «#» для подписки на тему (например, «hermes / #»), я получаю эту ошибку:
onConnectionLost: AMQJS0005E Внутренняя ошибка.Сообщение об ошибке: AMQJS0009E Неверные данные UTF: 80 -42., Трассировка стека: Ошибка: AMQJS0009E Неверные данные UTF: 80 -42.
Документация действительно краткая и в любом случае ничего не упоминает о подстановочных знаках, это отсутствует функция в библиотеке JS или есть другой способ?
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<script src="paho-mqtt.js" type="text/javascript"></script>
<script type="text/javascript">
var mqtt;
var reconnectTimeout = 2000;
var host="mywairaspi.local"; //change this
var port= 8080;
// Create a client instance
client = new Paho.MQTT.Client(host,port,'60');
// set callback handlers
client.onConnectionLost = onConnectionLost;
client.onMessageArrived = onMessageArrived;
// connect the client
client.connect({onSuccess:onConnect});
// called when the client connects
function onConnect() {
// Once a connection has been made, make a subscription and send a message.
console.log("onConnect");
client.subscribe("/World");
client.subscribe('hermes/#');
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>
</head>
<body>
</body>
</html>