软件说明
- 协议传输通道仅为TCPSocket
- 基于HarmonyOS SDK API 9开发
- 开发语言:ArkTS,TypeScript
应用操作说明
测试首页
- “连接” : 用于连接远端服务器。具备“连接 & 断开” 两个功能
- “设置” : 用于添加更多主题
- “订阅” & “解除” : 仅用于默认主题“Harvey2024”
- “发布” : 发布消息前,用来设置消息QoS 和 主题
- “发送” : 发布已输入的文字
主题设置页
- “+” : 添加主题
2. 主题列表,长按可删除主题
运行中的首页
接口使用说明
学习前准备:
开始前熟悉鸿蒙文档
鸿蒙OS开发 | 更多内容↓点击 | HarmonyOS与OpenHarmony技术 |
---|---|---|
鸿蒙技术文档 | 《鸿蒙NEXT星河版开发学习文档》 |
或+mau123789是v喔,直接拿!
连接
//构建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()
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。