4

私は長い間検索してきましたが、まだ有用なものは何も見つかりませんでした。
MQTT-Javascript-Clientを実装しようとしています。Mosquitto V1.0のリリースに伴い、http://mosquitto.org/js/mosquitto-1.0.jsにjavascript/websocket-clientがリリースされました。
しかし、これを正しい方法で実装する方法がわかりません。例: http://broker.mqttdashboard.com
のexample-serverをブローカーとして使用します。xampp-Serverで次のhtmlを実行しているときは何も起こらず、ブローカー側ではクライアントが接続されていません。私はそれを実装する方法に何か間違っていると思います。誰かがこれを手伝ってくれるといいですね。

<html><head>
<script type="text/JavaScript" src="mosquitto-1.0.js"></script> 

<script type="text/JavaScript">
    var t = new Mosquitto();
    t.connect('ws://broker.mqttdashboard.com:1883/',10);
    t.subscribe("mqttdashboard/testtopic", 0);
</script> 
</head>
<body></body></html>

node.js-thingについても知っていますが、websocket-wayを使用することを好みます。ありがとう。

4

3 に答える 3

6

接続先のサーバーは、websocket をサポートする必要があります。ポート 1883 に接続しているという事実は、そうではないことを示唆しています。ここでの通常のことは、ポート 80 (web) に接続してから、たまたま mqtt と通信する websockets 接続にアップグレードすることです。これには通常、Web サーバーが mqtt ブローカーと通信し、そのように構成する必要があります。これは自動的に行われるものではありません。

ws://test.mosquitto.org/ws を URL として使用してみてください。これは、現時点で私が知っている唯一の Websocket 対応 mqtt サーバーです。

于 2012-09-19T16:29:02.510 に答える
0

MQTT ダッシュボードは、ポート 8000 でwebsockets をサポートするようになりました。バージョン 1.4 でネイティブ websocket をサポートするHiveMQ MQTT ブローカーを使用します。

Mosquitto.js は現在非推奨になっているようです。そのため、Javascript MQTT クライアントとしてEclipse Paho.jsを使用することを強くお勧めします。

mosquitto.js を使用したコードは、次のように変更すると機能するようになります。

<html><head>
<script type="text/JavaScript" src="mosquitto-1.0.js"></script> 

<script type="text/JavaScript">
    var t = new Mosquitto();
    t.connect('ws://broker.mqttdashboard.com:8000/',10);
    t.subscribe("mqttdashboard/testtopic", 0);
</script> 
</head>
<body></body></html>
于 2013-08-23T21:08:52.320 に答える
0

websocket 用の broker.hivemq.com:8000 を試してみてください。これは ws をサポートしています。それは動作するはずです

私はこれを試してみましたが、これまでのところうまくいきました

<script src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js" type="text/javascript">
</script>
<script type="text/javascript">

client = new Paho.MQTT.Client("broker.hivemq.com", 8000, "clientId-" + parseInt(Math.random() * 100, 10));
// set callback handlers
 client.onConnectionLost = onConnectionLost;
  client.onMessageArrived = onMessageArrived;
  var options = {
    onSuccess:onConnect,
    onFailure:doFail
  }
  // connect the client
  client.connect(options);
  // 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("my/topic1");

  }
  function doFail(e){
    console.log(e);
  }
  // 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);
    document.write(message.payloadString);
    alert("messgaearrived!")
  }

</script>

また、cloudmqtt.com で試してみてください

于 2017-06-26T13:03:33.510 に答える