vin*_*rnk 5 javascript mqtt iot watson-iot ibm-cloud
我正在尝试使用Paho MQTT Javascript客户端连接IBM Watson IoT平台,如下面的示例代码中所述.
var client = new Messaging.Client("myOqgId.messaging.internetofthings.ibmcloud.com", 8883, "myclientid_" + parseInt(Math.random() * 100, 10));
//Gets called if the websocket/mqtt connection gets disconnected for any reason
client.onConnectionLost = function (responseObject) {
//Depending on your scenario you could implement a reconnect logic here
alert("connection lost: " + responseObject.errorMessage);
};
//Gets called whenever you receive a message for your subscriptions
client.onMessageArrived = function (message) {
//Do something with the push message you received
$('#messages').append('<span>Topic: ' + message.destinationName + ' | ' + message.payloadString + '</span><br/>');
};
//Connect Options
var options = {
userName: API-Key here,
password: Auth token here,
timeout: 3,
//Gets Called if the connection has sucessfully been established
onSuccess: function () {
alert("Connected");
},
//Gets Called if the connection could not be established
onFailure: function (message) {
alert("Connection failed: " + message.errorMessage);
}
};
//Creates a new Messaging.Message Object and sends it to the HiveMQ MQTT Broker
var publish = function (payload, topic, qos) {
//Send your message (also possible to serialize it as JSON or protobuf or just use a string, no limitations)
var message = new Messaging.Message(payload);
message.destinationName = topic;
message.qos = qos;
client.send(message);
}Run Code Online (Sandbox Code Playgroud)
但无法连接.我收到此错误: WebSocket连接到'ws://myOrgIdXYZ.messaging.internetofthings.ibmcloud.com:8883/mqtt'失败:WebSocket握手期间出错:net :: ERR_CONNECTION_RESET
请那些尝试使用Paho Mqtt客户端连接IBM Watson IoT的人.
谢谢大家的回复.根据我在代码中做出的所有回复.
<script type="text/javascript">
var clientId = 'a:myOrgId:'+Math.random().toString(16).substr(2, 8);
var client = new Messaging.Client("myOqgId.messaging.internetofthings.ibmcloud.com", 1883, clientId);
//Gets called if the websocket/mqtt connection gets disconnected for any reason
client.onConnectionLost = function (responseObject) {
//Depending on your scenario you could implement a reconnect logic here
alert("connection lost: " + responseObject.errorMessage);
};
//Gets called whenever you receive a message for your subscriptions
client.onMessageArrived = function (message) {
//Do something with the push message you received
$('#messages').append('<span>Topic: ' + message.destinationName + ' | ' + message.payloadString + '</span><br/>');
};
//Connect Options
var options = {
userName: API-Key here,
password: Auth token here,
timeout: 3,
//Gets Called if the connection has sucessfully been established
onSuccess: function () {
alert("Connected");
},
//Gets Called if the connection could not be established
onFailure: function (message) {
alert("Connection failed: " + message.errorMessage);
}
};
//Creates a new Messaging.Message Object and sends it to the HiveMQ MQTT Broker
var publish = function (payload, topic, qos) {
//Send your message (also possible to serialize it as JSON or protobuf or just use a string, no limitations)
var message = new Messaging.Message(payload);
message.destinationName = topic;
message.qos = qos;
client.send(message);
}
client.connect(options);
</script>Run Code Online (Sandbox Code Playgroud)
您可以看到我在ClientId中进行了更改.如果您不使用Watson IoT库, IBM Watson Iot将仅接受以下格式的客户端ID .
var clientId = 'a:OrgId:'+ RandomString;
如果您使用的是IBM Watson IoT库,则客户端ID可以是任何内容.甚至我在node.js中实现
| 归档时间: |
|
| 查看次数: |
914 次 |
| 最近记录: |