From 65d6f5edd417fd0459e99fa863f2cf0a872a448d Mon Sep 17 00:00:00 2001 From: Evgenij Spitsyn Date: Tue, 23 Jan 2024 15:11:31 +0200 Subject: [PATCH] paho-mqtt websocket nodejs example --- mqtt-client/README.md | 2 +- mqtt-client/nodejs-paho-ws/.gitignore | 2 ++ mqtt-client/nodejs-paho-ws/README.md | 3 +++ mqtt-client/nodejs-paho-ws/example.js | 31 +++++++++++++++++++++++++ mqtt-client/nodejs-paho-ws/package.json | 27 +++++++++++++++++++++ 5 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 mqtt-client/nodejs-paho-ws/.gitignore create mode 100644 mqtt-client/nodejs-paho-ws/README.md create mode 100644 mqtt-client/nodejs-paho-ws/example.js create mode 100644 mqtt-client/nodejs-paho-ws/package.json diff --git a/mqtt-client/README.md b/mqtt-client/README.md index 4fdeff0..7ecc082 100644 --- a/mqtt-client/README.md +++ b/mqtt-client/README.md @@ -30,7 +30,7 @@ That may be a **Standard** token, a **Master** token (although using it in the e ## nodejs -Example source code is located at [./nodejs/](./nodejs/) +Example source code is located at [./nodejs/](./nodejs/) and [./nodejs-paho/](./nodejs-paho/) To run the example you need to install the dependencies ([mqtt](https://github.com/mqttjs/MQTT.js) package): diff --git a/mqtt-client/nodejs-paho-ws/.gitignore b/mqtt-client/nodejs-paho-ws/.gitignore new file mode 100644 index 0000000..504afef --- /dev/null +++ b/mqtt-client/nodejs-paho-ws/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +package-lock.json diff --git a/mqtt-client/nodejs-paho-ws/README.md b/mqtt-client/nodejs-paho-ws/README.md new file mode 100644 index 0000000..dd629a2 --- /dev/null +++ b/mqtt-client/nodejs-paho-ws/README.md @@ -0,0 +1,3 @@ +# nodejs Paho MQTT Client example + +Please [refer here](../#nodejs) for complete README diff --git a/mqtt-client/nodejs-paho-ws/example.js b/mqtt-client/nodejs-paho-ws/example.js new file mode 100644 index 0000000..5eb647a --- /dev/null +++ b/mqtt-client/nodejs-paho-ws/example.js @@ -0,0 +1,31 @@ +import Paho from "paho-mqtt"; + +// for nodejs +import WebSocket from 'ws'; +global.WebSocket = WebSocket + +const uri = "mqtt.flespi.io"; +const username = `FlespiToken ${process.env.FlespiToken}`; +const clientId = `mqtt-async-test-${parseInt(Math.random() * 100)}`; +const client = new Paho.Client(uri, 443, clientId); +function onConnect() { + console.log("Success"); + client.subscribe("test/test"); +} + +function onFailure(error) { + console.log("Failed", error); +} + +function onMessageArrived(message) { + console.log("Message: " + message.payloadString); +} + +client.onMessageArrived = onMessageArrived; + +client.connect({ + userName: username, + useSSL: true, + onSuccess: onConnect, + onFailure: onFailure, +}); diff --git a/mqtt-client/nodejs-paho-ws/package.json b/mqtt-client/nodejs-paho-ws/package.json new file mode 100644 index 0000000..234aa96 --- /dev/null +++ b/mqtt-client/nodejs-paho-ws/package.json @@ -0,0 +1,27 @@ +{ + "name": "mqtt-client-example-nodejs-paho-ws", + "version": "1.0.0", + "description": "", + "scripts": { + "example": "node ./example.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/flespi-software/examples.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/flespi-software/examples/issues" + }, + "homepage": "https://github.com/flespi-software/examples#readme", + "dependencies": { + "paho-mqtt": "^1.1.0", + "ws": "^8.16.0" + } +} + + + + +