更新时间:2024-07-29 GMT+08:00

Node.js SDK接入示例

本文介绍使用Node.js语言的AMQP SDK接入华为云物联网平台,接收服务端订阅消息的示例。

开发环境

本示例所使用的开发环境为Node.js 8.0.0及以上版本。请前往Node.js官网下载。安装成功之后可以通过以下命令查看node版本。

node --version

如果能够查询到node版本,且版本高于8.0.0则代表安装成功。

代码示例

  1. 在本地计算机创建一个JavaScript文件(例:HwIotAmqpClient.js),保存以下示例代码到文件中。参考AMQP客户端接入说明修改相关连接参数。
    const container = require('rhea');
    //获取当前时间戳
    var timestamp = Math.round(new Date());
    
    //建立连接。
    var connection = container.connect({
         //接入域名,请参考这里。
         'host': '${UUCID}.iot-amqps.cn-north-4.myhuaweicloud.com',
         'port': 5671,
         'transport': 'tls',
         'reconnect': true,
         'idle_time_out': 8000,
         //userName组装方法,请参考这里。
          'username': 'accessKey=${yourAccessKey}|timestamp=' + timestamp + '|instanceId=${instanceId}',
         //accessCode,请参考这里。
         'password': '${yourAccessCode}',
         'saslMechannisms': 'PLAIN',
         'rejectUnauthorized': false,
         'hostname': 'default',
    });
    
    //创建Receiver连接。 队列名,可以使用默认队列DefaultQueue
    var receiver = connection.open_receiver('${yourQueue}');
    
    //接收云端推送消息的回调函数。
    container.on('message', function (context) {
         var msg = context.message;
         var content = msg.body;
         console.log(content);
         //发送ACK,注意不要在回调函数有耗时逻辑。
         context.delivery.accept();
     });
  2. 进入上一步创建的文件(HwIotAmqpClient.js)所在目录,执行以下命令安装rhea库。
    npm install rhea

    安装完成后,项目文件如下图所示。

  3. 通过命令启动AMQP客户端,命令如下。
    node HwIotAmqpClient.js
  4. 运行结果示例
  • 订阅成功:

    显示如下日志代表AMQP客户端订阅成功,并成功获取到物联网平台数据。

  • 订阅失败

    以下日志代表AMQP客户端在物联网平台鉴权失败,请确认接入码是否正确,时间戳与标准时间的差异是否大于5分钟。