文档首页 > > 用户指南> IoT接入管理> 使用WebSocket客户端接入IoT平台

使用WebSocket客户端接入IoT平台

分享
更新时间: 2019/11/28 GMT+08:00

本节以WebSocket客户端为例,介绍使用WebSocket协议接入IoT平台,实现采集物联网设备数据。

前提条件

  • 已安装Node.js和npm。
  • 从https://dis-publish.obs-website.cn-north-1.myhwclouds.com/获取WebSocket客户端压缩包。该压缩包中包含脚本形式的客户端(mqtt_over_websocket.js)和网页版客户端(mqtt_over_websocket.html)。

脚本版WebSocket客户端使用方法

  1. 进入Node.js的工作目录,输入cmd后,回车。
  2. 执行如下命令:

    npm install mqtt --save

  3. 将Websocket客户端脚本包中的mqtt_over_websocket.js,放置在Node.js的工作目录。
  4. 修改mqtt_over_websocket.js的配置信息:

    var mqtt = require('mqtt');
    var userName = '{user_name}';//用户名
    var password = '{password}';//用户密码
    var subscribedTopic = '{subscribed_topic}';//订阅IoT 主题
    var subscribedMessage = '{subscribed_message}';//发布消息内容
    var endpointIp = '{endpoint_ip}';//终端节点IP
    var port = '{endpoint_port}';//终端节点端口
    var protocalName = '{protocal_name}';//协议名称
    
    var options = {
    	keepalive: 60,
    	username: userName,
    	password: password,
    	clientId: 'mqtt_client_' + new Date().getTime(),
    	clean: true,
    	connectTimeout: 4000
    };
    
    //IoT实例的终端节点, 通常由IP和端口号组成
    var client = mqtt.connect('ws://' + endpointIp + ':' + port + '/' + protocalName, options);
    if (!client) {
    	console.log('连接失败, 请检查网络!');
    }
    
    client.on('error', (error) => {
    	console.log('发生错误!');
    });
    
    //接收IoT实例推送给客户端的消息
    client.on('message', (topic, payload) => {
    	console.log('[接收][Receive message] ' + new Date() + ' | topic: ' + topic);
    	console.log('[接收][Receive message] ' + new Date() + ' | payload: ' + payload);
    	client.end();
    });
    
    //订阅IoT主题subscribeTopic
    client.subscribe('/' + subscribedTopic, {
    	qos: 0
    }, (error) => {
    
    	if (error) {
    		console.log('订阅失败!');
    	} else {
    		console.log('[订阅][Subscribe] ' + new Date() + ' | Subscribe ' + '/' + subscribedTopic + ' successfully!');
    
    		//在IoT主题subscribeTopic下发布一条内容为subscribedMessage的消息
    		client.publish('/' + subscribedTopic, subscribedMessage, {
    			qos: 0,
    			retain: false
    		}, (e) => {
    			console.log('[发布][Publish] ' + new Date() + ' | Publish ' + subscribedMessage + ' successfully! ');
    		});
    	}
    });
    • {user_name}:设备请求接入IoT实例所使用的用户名。
    • {password}:设备请求接入IoT实例所使用的密码。用户名和密码请保持与购买IoT接入实例中,创建的实例用户名和密码一致。
    • {subscribed_topic}:设置为订阅的主题名称。
    • {subscribed_message}:发布的消息内容。
    • {endpoint_ip}:请设置为购买IoT接入实例中已创建的IoT实例的Endpoint匹配的IP地址。
    • {endpoint_port}:设置为8083
    • {protocal_name}:设置为mqtt。

  5. 执行如下命令:

    node mqtt_over_websocket.js

    成功后,回显订阅和发布的主题和消息内容。
    图1 执行结果

网页版客户端使用方法

使用Chrome浏览器打开mqtt_over_websocket.html,并配置相关参数。

  • DIS-IoT 实例终端节点:

    格式:ws://192.168.100.5:8083/mqtt

    其中,192.168.100.5请根据实际情况,设置为购买IoT接入实例中已创建的IoT实例的Endpoint匹配的IP地址。

  • 客户端ID:设备ID。
  • 用户名和密码:设备请求接入IoT实例所使用的用户名和密码。请保持与购买IoT接入实例中,创建的实例用户名、密码一致。
  • 订阅的topic和待发布消息的topic:消息主题名称,订阅和发布保持一致。

参数配置OK后,分别单击“订阅”“发布”,系统提示成功字样的消息。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区