スイッチの状態が変更されたり、フォームが入力されたり送信されたりすると、mqttブローカーにメッセージを公開できるWebアプリケーションを設計したいと思います。mqttライブラリを使用してメッセージを公開できますノード。私はまた、javascriptとjqueryを使用してhtmlページ上で変更されると、通常のスイッチ状態を検出することができます。ここでノードappからmqtt publish関数を呼び出したいと思います。私はどうしますか?jqueryを使用したmqttのNodejs Webアプリケーション
ここで通常のHTMLファイルswitch.html
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="switch.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="switch.js"></script>
</head>
<body>
<h2>Toggle Switch</h2>
<label class="switch" id = "switchLabel1">
<input type="checkbox" id = "switch1">
<div class="slider round"></div>
</label>
</body>
</html>
スイッチ状態はindex.jsをMQTTする
$(document).ready(function() {
$('#switch1').attr('checked', true);
$('#switch1').click(function(){
if($(this).prop("checked") == true){
console.log("switch1 is checked.");
}
else if($(this).prop("checked") == false){
console.log("switch1 is unchecked.");
}
});
});
Nodejsアプリ公開メッセージをswitch.js検出するJavaScriptです。 MQTTライブラリーはnpmを使用してインストールされます。私が何をしたいか
var mqtt = require('mqtt')
var client = mqtt.connect('mqtt://192.168.15.3')
client.on('connect', function() {
client.subscribe('mqtt_node_subscribe')
client.publish('mqtt_node_publish', 'Hello mqtt')
})
client.on('message', function (topic, message) {
// message is Buffer
console.log(message.toString())
})
はコールclient.publish(「トピック」、「メッセージ」)であるとき、代わりにconsole.logのswitch.jsで
私はそれは、クライアントが定義されていないと言うことを行うと、私はjsと実行中のノードの両方をマージしようとしましたが、$は定義されていません。私は、ノードアプリケーションにjqueryを含めてみました。だから私はノードを使用してjQueryなどを使用してこのWebアプリケーションを提供するメソッドが必要です。
'192.168.15.3'には' mqtt'サーバがありますか? –
はい、mqttサーバーは192.168.15.3で動作しています –
クライアント側のmqtt/websocketライブラリを使用してサーバーに接続する必要があります(Web javascriptを使用しています)。 –