KaihongOS操作系统:MQTT物联网通讯协议 - KaihongOS技术社区 - 电子技术论坛 - 广受欢迎的专业电子论坛
分享 收藏 返回
张昂笙 关注 私信
[文章]

KaihongOS操作系统:MQTT物联网通讯协议

@ohos.net.khMqtt (MQTT物联网通讯协议)

说明:
本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
目前支持3.1.1版本的MQTT协议。
目前支持的通配符:/、+、#。
导入模块

import khMqtt from '@ohos.net.khMqtt';khMqtt.createmqtt

createmqtt(): ResponseCode
创建一个mqtt对象。
系统能力:SystemCapability.Communication.khNetStack
返回值:

类型说明
ResponseCode返回一个ResponseCode对象
示例:
khMqtt.createmqtt();khMqtt.destroymqtt

destroymqtt(): ResponseCode
释放一个mqtt对象。


系统能力:SystemCapability.Communication.khNetStack
返回值:
类型说明
ResponseCode返回一个ResponseCode对象
示例:
khMqtt.destroymqtt();mqtt

在调用mqtt的方法前,需要先通过khMqtt.createmqtt创建mqtt对象。
connect

connect(host: string, port: number, keepalive: number, tls?: TlsConfig): ResponseCode
连接到mqtt服务器。
说明:此接口暂不支持TLS功能。
需要权限:ohos.permission.INTERNET
系统能力:SystemCapability.Communication.khNetStack
参数:
参数名类型必填说明
hoststring目的IP地址
portnumber目的端口号
keepalivenumberkeepalive时间,单位毫秒
tlsTlsConfigTLS配置信息
返回值


类型说明
ResponseCode返回一个ResponseCode对象
示例:
let ret = khMqtt.connect("120.48.22.165", 5678, 1000)console.log('connect code:' + JSON.stringify(ret));publish

publish(topic: string, payload: string): ResponseCode
MQTT发布消息的接口,需要在连接成功后调用。

系统能力:SystemCapability.Communication.khNetStack
参数:
参数名类型必填说明
topicstring发布主题
payloadstring发布内容
返回值
类型说明
ResponseCode返回一个ResponseCode对象
示例:
let code = khMqtt.publish("topic", "hello")console.log('publish code:' + JSON.stringify(code));subscribe

subscribe(sub: string): ResponseCode
MQTT订阅消息的接口,需要在连接成功后调用。
系统能力:SystemCapability.Communication.khNetStack
参数:
参数名类型必填说明
substring订阅主题
返回值
类型说明
ResponseCode返回一个ResponseCode对象
示例:
let code = khMqtt.subscribe("topic")console.log('subscribe code:' + JSON.stringify(code));unsubscribe

unsubscribe(sub: string): ResponseCode
MQTT取消订阅消息的接口。
系统能力:SystemCapability.Communication.khNetStack
参数:
参数名类型必填说明
substring订阅主题
返回值
类型说明
ResponseCode返回一个ResponseCode对象
示例:
let code = khMqtt.unsubscribe("topic")console.log('unsubscribe code:' + JSON.stringify(code));disconnect

disconnect(): ResponseCode
断开与mqtt服务器的连接。
系统能力:SystemCapability.Communication.khNetStack
返回值
类型说明
ResponseCode返回一个ResponseCode对象
示例:
let code = khMqtt.disconnect()console.log('disconnect code:' + JSON.stringify(code));on(‘connect’)

on(type: ‘connect’, callback: Callback<{code: number, reason: string}>): void
订阅mqtt的连接事件。使用callback方式作为异步方法。
系统能力:SystemCapability.Communication.khNetStack
参数:
参数名类型必填说明
typestring订阅的事件类型。'connect’表示连接事件。
callbackCallback<{code: number, reason: string}>回调函数。
示例:
khMqtt.on('connect', (data) => {        console.log("on connect success " + JSON.stringify(data));});off(‘connect’)

off(type: “connect”, callback?: Callback<{ code: number, reason: string }>): void
取消订阅mqtt的连接事件。使用callback方式作为异步方法。
系统能力:SystemCapability.Communication.khNetStack
参数:
参数名类型必填说明
typestring取消订阅的事件类型。'connect’表示连接事件。
callbackCallback<{code: number, reason: string}>回调函数。
示例:
khMqtt.off('connect', (data) => {        console.log("off connect success " + JSON.stringify(data));});on(‘publish’)

on(type: “publish”, callback: Callback): void
订阅mqtt的发布消息事件。使用callback方式作为异步方法。
系统能力:SystemCapability.Communication.khNetStack
参数:
参数名类型必填说明
typestring订阅的事件类型。'publish’表示发布消息事件。
callbackCallback回调函数。
示例:
khMqtt.on('publish', (data) => {        console.log("on publish success " + JSON.stringify(data));});off(‘publish’)

off(type: “publish”, callback?: Callback): void
取消订阅mqtt的发布消息事件。使用callback方式作为异步方法。
系统能力:SystemCapability.Communication.khNetStack
参数:
参数名类型必填说明
typestring取消订阅的事件类型。'publish’表示发布消息事件。
callbackCallback回调函数
示例:
khMqtt.off('publish', (data) => {        console.log("off publish success " + JSON.stringify(data));});on(‘subscribe’)

on(type: “subscribe”, callback: Callback<{ code: number, reason: string }>): void
订阅mqtt的订阅消息事件。使用callback方式作为异步方法。
系统能力:SystemCapability.Communication.khNetStack
参数:
参数名类型必填说明
typestring订阅的事件类型。'subscribe’表示订阅消息事件。
callbackCallback<{code: number, reason: string}>回调函数。
示例:
khMqtt.on('subscribe', (data) => {        console.log("on subscribe success " + JSON.stringify(data));});off(‘subscribe’)

off(type: “subscribe”, callback?: Callback<{ code: number, reason: string }>): void
取消订阅mqtt的订阅消息事件。使用callback方式作为异步方法。
系统能力:SystemCapability.Communication.khNetStack
参数:
参数名类型必填说明
typestring取消订阅的事件类型。'subscribe’表示订阅消息事件。
callbackCallback<{code: number, reason: string}>回调函数。
示例:
khMqtt.off('subscribe', (data) => {        console.log("off subscribe success " + JSON.stringify(data));});on(‘unsubscribe’)

on(type: “unsubscribe”, callback: Callback): void
订阅mqtt的取消订阅消息事件。使用callback方式作为异步方法。
系统能力:SystemCapability.Communication.khNetStack
参数:
参数名类型必填说明
typestring订阅的事件类型。'unsubscribe’表示取消订阅消息事件。
callbackCallback回调函数。
示例:
khMqtt.on('unsubscribe', (data) => {        console.log("on unsubscribe success " + JSON.stringify(data));});off(‘unsubscribe’)

off(type: “unsubscribe”, callback?: Callback): void
取消订阅mqtt的取消订阅消息事件。使用callback方式作为异步方法。
系统能力:SystemCapability.Communication.khNetStack
参数:
参数名类型必填说明
typestring取消订阅的事件类型。'unsubscribe’表示取消订阅消息事件。
callbackCallback回调函数。
示例:
khMqtt.off('unsubscribe', (data) => {        console.log("off unsubscribe success " + JSON.stringify(data));});on(‘disconnect’)

on(type: “disconnect”, callback: Callback<{ code: number, reason: string }>): void
订阅mqtt的断开连接事件。使用callback方式作为异步方法。
系统能力:SystemCapability.Communication.khNetStack
参数:
参数名类型必填说明
typestring订阅的事件类型。'disconnect’表示断开连接事件。
callbackCallback<{code: number, reason: string}>回调函数。
示例:
khMqtt.on('disconnect', (data) => {        console.log("on disconnect success " + JSON.stringify(data));});off(‘disconnect’)

off(type: “disconnect”, callback?: Callback<{ code: number, reason: string }>): void
取消订阅mqtt的断开连接事件。使用callback方式作为异步方法。
系统能力:SystemCapability.Communication.khNetStack
参数:
参数名类型必填说明
typestring取消订阅的事件类型。'disconnect’表示断开连接事件。
callbackCallback<{code: number, reason: string}>回调函数。
示例:
khMqtt.off('disconnect', (data) => {        console.log("off disconnect success " + JSON.stringify(data));});on(‘message’)

on(type: “message”, callback: Callback): void
订阅mqtt的接收消息事件。使用callback方式作为异步方法。
系统能力:SystemCapability.Communication.khNetStack
参数:
参数名类型必填说明
typestring订阅的事件类型。'message’表示接收消息事件。
callbackCallback<MqttMessage>回调函数。
示例:
khMqtt.on('message', (data) => {        console.log("on message success " + JSON.stringify(data));});off(‘message’)

off(type: “message”, callback?: Callback): void
取消订阅mqtt的接收消息事件。使用callback方式作为异步方法。
系统能力:SystemCapability.Communication.khNetStack
参数:
参数名类型必填说明
typestring取消订阅的事件类型。'message’表示接收消息事件。
callbackCallback<MqttMessage>回调函数。
示例:
khMqtt.off('message', (data) => {        console.log("off message success " + JSON.stringify(data));});MqttMessage

接收的mqtt消息结构体。
参数名类型必填说明
midnumber消息ID
topicstring消息主题
payloadstring消息内容
payloadlennumber消息长度
qosnumber0、1 或 2,指示用于消息的服务质量
retainboolean设置为true以保留消息
TlsConfig

TLS配置结构体。
参数名类型必填说明
cafilestringca文件
capathstringca文件路径
certfilestringcert文件
keyfilestringkey文件路径
ResponseCode

请求结果返回码。
返回码值说明
MQTT_OK0返回值正确
MQTT_NOT_INIT-1没有初始化
MQTT_INVALID_PARAM-2不正确的参数
MQTT_INIT_LIB_FAILED-3库不正确
MQTT_INIT_CLIENT_FAILED-4初始化客户端失败
MQTT_SET_TLS_FAILED-5设置TLS失败
MQTT_CONNECT_FAILED-6连接失败
MQTT_PUBLISH_FAILED-7发布消息失败
MQTT_SUBSCRIBE_FAILED-8订阅消息失败
MQTT_UNSUBSCRIBE_FAILED-9取消订阅失败
MQTT_DISCONNECT_FAILED-10断开连接失败

更多回帖

×
发帖