AWS Websocket Pub/Sub client
AWS MQTT Websocket Pub/Sub with AWS IoT based on MQTT.js.
Recently AWS released support of WebSockets for IoT service. It is very easy to use as Pub/Sub message system for serverless web applications. You can post new messages from AWS lambda function
via http post request
and receive them as websocket messages on client.
npm i aws-mqtt-client --save
AWSIoTDataAccess
policy. (It is better to use AWS Cognito to provide temporary credentials for the front-end application, you can also customize policy to allow access only to user specific topics).aws iot describe-endpoint
to get IoT endpoint url.mqttClient
with AWS credentials.import AWSMqtt from "aws-mqtt-client";
const mqttClient = new AWSMqtt({
accessKeyId: AWS_ACCESS_KEY,
secretAccessKey: AWS_SECRET_ACCESS_KEY,
sessionToken: AWS_SESSION_TOKEN,
endpointAddress: AWS_IOT_ENDPOINT_HOST,
region: "us-east-1"
});
mqttClient.on("connect", () => {
mqttClient.subscribe("test-topic");
console.log("connected to iot mqtt websocket");
});
mqttClient.on("message", (topic, message) => {
console.log(message.toString());
});
mqttClient.publish(MQTT_TOPIC, message);
Based on Serverless JS-Webapp Pub/Sub with AWS IoT article by Stefan Siegl. This library is a wrapper around MQTT.js npm package.