0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙OS开发实战:【ArkTS 实现MQTT协议(2)】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-04-01 14:48 次阅读

软件说明

  1. 协议传输通道仅为TCPSocket
  2. 基于HarmonyOS SDK API 9开发
  3. 开发语言:ArkTS,TypeScript

应用操作说明

测试首页

  1. “连接” : 用于连接远端服务器。具备“连接 & 断开” 两个功能
  2. “设置” : 用于添加更多主题
  3. “订阅” & “解除” : 仅用于默认主题“Harvey2024”
  4. “发布” : 发布消息前,用来设置消息QoS 和 主题
  5. “发送” : 发布已输入的文字

Screenshot_20240109232139981.png

主题设置页

  1. “+” : 添加主题

image.png

  1. 主题列表,长按可删除主题

image.png

运行中的首页

image.png

接口使用说明

学习前准备:

开始前熟悉鸿蒙文档

连接

//构建MQTT CONNECT参数
let CMD = MQTTConnect.create()
  .setClientIdentifier('Harvey鸿蒙') //客户端名字
  .buildPacket()

//配置Socket并且完成连接
HarmonyOSSocket.get()
  .socketCfg({
    address: {
      address: this.sec1IP + "." + this.sec2IP + "." + this.sec3IP + "." + this.sec4IP,
      port: 1883
    }
  },
  )
  .connectCfg(CMD)
  .connect()

订阅主题

let options: SubscribeTopicNameOptions[] = [
  { topicName: this.currentPublishTopicName} //主题名称
]

HarmonyOSSocket.get().subscribeTopic(options)

发布消息

//构建MQTT PUBLISH参数
let publishConfig = MQTTPublish.create()
  .setQoS(this.currentPublishQoS) 
  .setTopicName(this.currentPublishTopicName)

HarmonyOSSocket.get()
               .publishCfg(publishConfig)
               .sendMessageByString(this.inputMessage)

消息监听

//错误信息
getContext().eventHub.on(MQTTCommon.EVENTHUB_MQTT_APP_ERROR_MSG, (value) = > {
  this.errorMessage = value
})

//
getContext().eventHub.on(MQTTCommon.EVENTHUB_MQTT_CMD_STATUS_MSG, (msg) = > {
  if (msg.action === 'connect') { //MQTT CONNECT结果消息
    if (msg.value == 0) {
       //成功
    } else {
      Prompt.showToast({ message: '连接失败' })
    }

  } else if (msg.action === 'close') {
    //1. TCPSocket 关闭事件
    //2. MQTT 断开命令已发送完毕

  } else if (msg.action == 'subscribeack') {

    //订阅主题结果 
    let packet = msg.value as MQTTPacketStruct

  } else if (msg.action == 'unsubscribeack') {

    //解除主题订阅结果 
    let packet = msg.value as MQTTPacketStruct

  } else if (msg.action == 'publish-s-to-c') {

    //收到服务端数据包,即 接收到消息
    let packet = msg.value as MQTTPacketStruct

  } else if (msg.action == 'publish-c-to-s') {

    //客户端发送给服务端数据包
    let packet = msg.value as MQTTPacketStruct

  }
})

断开服务

HarmonyOSSocket.get().disconnect()

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • MQTT
    +关注

    关注

    5

    文章

    538

    浏览量

    21981
  • HarmonyOS
    +关注

    关注

    79

    文章

    1861

    浏览量

    29267
  • 鸿蒙OS
    +关注

    关注

    0

    文章

    155

    浏览量

    4280
收藏 人收藏

    评论

    相关推荐

    鸿蒙入门实战-ArkTS开发

    ArkUI框架提供,ToDoItem为自定义组件,需要开发者使用ArkTS自行声明。 1.@Entry 2.@Component 3.struct ToDoList { 4.... 5.build
    发表于 01-16 17:27

    2024款鸿蒙OS 最新HarmonyOS Next_HarmonyOS4.0系列教程分享

    鸿蒙的出现,标志着中国科技的崛起。HarmonyOS就是我们说的华为鸿蒙系统,截止到2023年8月4日已有超过7亿台设备搭载了鸿蒙OS系统。据多家媒体报道,2024年国内有21所985
    发表于 02-28 10:29

    鸿蒙实战项目开发:【短信服务】

    数据管理 电话服务 分布式应用开发 通知与窗口管理 多媒体技术 安全技能 任务管理 WebGL 国际化开发 应用测试 DFX面向未来设计 鸿蒙系统移植和裁剪定制 …… ​ 《鸿蒙
    发表于 03-03 21:29

    如何在鸿蒙系统中移植 Paho-MQTT 实现MQTT协议

    MQTT 是当前最主流的物联网通信协议,需要物联网云平台,例如华为云、阿里云、移动OneNET都支持mqtt。而Hi3861则是一款专为IoT应用场景打造的芯片。本节主要讲如何在鸿蒙
    发表于 10-23 22:57

    鸿蒙开发板上使用MQTT协议、OneNET实现第一个物联网项目

    移植将支持多任务。(2)onenet协议的移植与实现。主要讲如何在mqtt的基础上实现onenet接入。(3)如何使用onenet云平台(4
    发表于 10-25 21:57

    【HarmonyOS】在鸿蒙开发板上使用MQTT协议、OneNET实现第一个物联网项目

    文章讲了paho mqtt的移植,但是那篇文章只是简单的移植,并不支持多任务,这一次mqtt移植将支持多任务。(2)onenet协议的移植与实现
    发表于 10-26 16:59

    鸿蒙开发板上使用MQTT协议、OneNET实现第一个物联网项目资料

    通常来说,一个物联网产品应当包括设备、云平台、手机APP。我将在鸿蒙系统上移植MQTT协议、OneNET接入协议实现手机APP、网页两者都
    发表于 10-26 17:22

    【HarmonyOS HiSpark Wi-Fi IoT HarmonyOS 智能家居套件试用 】基于鸿蒙OS系统的边缘计算

    智能家居套件的基本组件和使用方法。2.使用提供的基本源代码完成在开发板上的鸿蒙OS系统的搭建和使用,尝试搭建低功耗的鸿蒙
    发表于 10-29 14:06

    【直播预热】Harmony MQTT/CoAP应用指南——火热报名中

    )paho-mqtt主要API及使用3)常用调试工具和分析方法 1. CoAP1)CoAP协议和相关开源项目简介2)移植libcoap到鸿蒙OS
    发表于 12-09 17:18

    基于鸿蒙Hi3861V100 MQTT协议 对接阿里云物联网平台

    更新啦!!!!!!!!!!基于鸿蒙HarmonyOS Hi3861V100 开发板通过MQTT协议 对接阿里云IOT物联网平台同时支持APP端、IOT网页端、设备端 三端数据同步上传和
    发表于 01-25 08:31

    鸿蒙开发板上使用MQTT协议、OneNET实现第一个物联网项目 精选资料分享

    通常来说,一个物联网产品应当包括设备、云平台、手机APP。我将在鸿蒙系统上移植MQTT协议、OneNET接入协议实现手机APP、网页两者都
    发表于 07-13 07:13

    鸿蒙 OS 应用开发初体验

    的操作系统平台和开发框架。HarmonyOS 的目标是实现跨设备的无缝协同和高性能。 DevEco Studio 对标 Android Studio,开发鸿蒙
    发表于 11-02 19:38

    鸿蒙开发板上使用MQTT协议、OneNET实现第一个物联网项目

    通常来说,一个物联网产品应当包括设备、云平台、手机APP。我将在鸿蒙系统上移植MQTT协议、OneNET接入协议实现手机APP、网页两者都
    发表于 10-26 17:27 0次下载
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>板上使用<b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>、OneNET<b class='flag-5'>实现</b>第一个物联网项目

    鸿蒙开发ArkTS基础知识

    一、ArkTS简介 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配了鸿蒙的ArkUI框架,扩展了声明式UI、状态管理等相应的能
    的头像 发表于 01-24 16:44 615次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>之<b class='flag-5'>ArkTS</b>基础知识

    鸿蒙实战开发ArkTS运用:【ai聊天框】

    用一个ArkTS编写的HarmonyOS原生聊天UI框架,提供了开箱即用的聊天对话组件。
    的头像 发表于 03-08 15:38 263次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>实战</b><b class='flag-5'>开发</b><b class='flag-5'>ArkTS</b>运用:【ai聊天框】