Nearly Perfect Mediocracy

    aws-mqtt-client

    0.0.6 • Public • Published

    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.

    Installing it

    npm i aws-mqtt-client --save

    Basic usage

    1. Create an IAM role and asign predefined 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).
    2. Run AWS CLI command aws iot describe-endpoint to get IoT endpoint url.
    3. Create 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"
    });
    1. Connect and receive messages from your topic.
    mqttClient.on("connect", () => {
      mqttClient.subscribe("test-topic");
      console.log("connected to iot mqtt websocket");
    });
    mqttClient.on("message", (topic, message) => {
      console.log(message.toString());
    });
    1. Publish a message.
    mqttClient.publish(MQTT_TOPIC, message);

    Complete MQTT.js API

    Credits

    Based on Serverless JS-Webapp Pub/Sub with AWS IoT article by Stefan Siegl. This library is a wrapper around MQTT.js npm package.

    Install

    npm i aws-mqtt-client

    DownloadsWeekly Downloads

    151

    Version

    0.0.6

    License

    MIT

    Unpacked Size

    6.81 kB

    Total Files

    8

    Last publish

    Collaborators

    • dmitriy.nevzorov