在微信小程序中打造 MQTT 连接测试工具

如题所述

微信小程序作为一种无需下载安装的应用程序,在微信平台上即可使用,通过扫一扫或搜索即可开启,极大节约了手机内存和时间成本。

随着微信生态的日益发展,小程序因其开发难度低、使用便捷、自带微信庞大用户量的优势,相较于APP开发更受开发者青睐。

微信作为一款即时通讯工具,收发消息是最基本的功能。在物联网业务场景中,通过微信小程序与设备端连接,实现接收、发送消息或及时收到设备状态异常告警,将大大提高远程智能操纵的可行性。

本文以MQTT连接测试场景为例,使用MQTT.js连接到MQTT服务——EMQX Cloud部署,在微信小程序中实现一个简单方便的MQTT连接测试工具。

EMQX Cloud是一款全托管的云原生MQTT消息服务,以自动化、全托管的形式为用户提供可靠、实时的海量物联网设备连接、事件消息处理、IoT数据桥接等能力,免除基础设施管理维护负担,加速物联网应用开发。

项目初始化微信小程序侧相关准备证书及域名,绑定域名EMQX Cloud专业版部署默认连接地址是IP,由于小程序只可以跟指定的域名进行网络通信,需要EMQX Cloud用户将自己经过ICP备案的域名和部署IP相绑定,并在微信公众平台添加socket合法域名。

创建项目,注册微信小程序账号,下载微信开发者工具,打开微信开发者工具,点击新建一个小程序项目。

安装MQTT库,推荐使用MQTT.js v4.2.1,若调试器可以连接但真机调试仍有问题,建议尝试切换MQTT.js版本。原生微信小程序MQTT.js可用版本有v4.2.1、v4.2.0、v4.1.0和v2.18.8,使用uniapp框架搭建微信小程序MQTT.js可用版本有v4.1.0和v2.18.8。

在项目根目录下新建utils文件夹,将下载好的对应版本的mqtt.min.js文件放入该文件夹中,在index.js中通过如下方式引入mqtt。

建立连接,只能使用wss协议,微信小程序中需要写为wxs端口为8084(EMQX Cloud专业版部署),但实际的端口号以EMQX Cloud控制台对应部署的概览页面信息为准。连接地址末尾不要忘了带上路径/mqtt,EMQX Cloud部署需要先在部署详情页面的【认证鉴权】>【认证】中添加用户名密码,然后写入mqttOptions中。

订阅主题、取消订阅、发布消息、断开连接,项目完整代码请参阅:github.com/emqx/MQTT-Cl...

真机测试验证,本文使用MQTT 5.0客户端工具-MQTT X作为测试的客户端和小程序互相收发消息。小程序建立连接,并订阅主题testtopic/miniprogram,然后向该主题发送一条消息。与此同时使用MQTT X连接相同的地址,订阅主题testtopic/#。

可以看到MQTT X可以正常接收来自小程序发送过来的消息。同样,使用MQTT X向主题testtopic/miniprogram发送一条消息时,也可以看到小程序能正常接收到该消息。

结语,通过本文,我们介绍了如何在微信小程序中使用MQTT.js实现MQTT协议的连接、订阅、取消订阅、收发消息和断开连接这些功能,成功搭建了一个简单的MQTT连接测试工具。除了将连接地址暴露出来方便进行修改,其他相关连接参数选项,也可以设置为表单的形式进行配置,会更加灵活高效。在实际生产环境中,可以在此示例的基础上进行优化,实现支持多个连接同时在线,扩展可配置选项参数。
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网