@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
参数:
参数名类型必填说明host | string | 是 | 目的IP地址 | port | number | 是 | 目的端口号 | keepalive | number | 是 | keepalive时间,单位毫秒 | tls | TlsConfig | 否 | TLS配置信息 | 返回值:
类型说明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
参数:
参数名类型必填说明topic | string | 是 | 发布主题 | payload | string | 是 | 发布内容 | 返回值:
类型说明ResponseCode | 返回一个ResponseCode对象 | 示例:
let code = khMqtt.publish("topic", "hello")console.log('publish code:' + JSON.stringify(code));subscribe
subscribe(sub: string): ResponseCode
MQTT订阅消息的接口,需要在连接成功后调用。
系统能力:SystemCapability.Communication.khNetStack
参数:
参数名类型必填说明返回值:
类型说明ResponseCode | 返回一个ResponseCode对象 | 示例:
let code = khMqtt.subscribe("topic")console.log('subscribe code:' + JSON.stringify(code));unsubscribe
unsubscribe(sub: string): ResponseCode
MQTT取消订阅消息的接口。
系统能力:SystemCapability.Communication.khNetStack
参数:
参数名类型必填说明返回值:
类型说明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
参数:
参数名类型必填说明type | string | 是 | 订阅的事件类型。'connect’表示连接事件。 | callback | Callback<{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
参数:
参数名类型必填说明type | string | 是 | 取消订阅的事件类型。'connect’表示连接事件。 | callback | Callback<{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
参数:
参数名类型必填说明type | string | 是 | 订阅的事件类型。'publish’表示发布消息事件。 | callback | Callback | 是 | 回调函数。 | 示例:
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
参数:
参数名类型必填说明type | string | 是 | 取消订阅的事件类型。'publish’表示发布消息事件。 | callback | Callback | 否 | 回调函数 | 示例:
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
参数:
参数名类型必填说明type | string | 是 | 订阅的事件类型。'subscribe’表示订阅消息事件。 | callback | Callback<{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
参数:
参数名类型必填说明type | string | 是 | 取消订阅的事件类型。'subscribe’表示订阅消息事件。 | callback | Callback<{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
参数:
参数名类型必填说明type | string | 是 | 订阅的事件类型。'unsubscribe’表示取消订阅消息事件。 | callback | Callback | 是 | 回调函数。 | 示例:
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
参数:
参数名类型必填说明type | string | 是 | 取消订阅的事件类型。'unsubscribe’表示取消订阅消息事件。 | callback | Callback | 否 | 回调函数。 | 示例:
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
参数:
参数名类型必填说明type | string | 是 | 订阅的事件类型。'disconnect’表示断开连接事件。 | callback | Callback<{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
参数:
参数名类型必填说明type | string | 是 | 取消订阅的事件类型。'disconnect’表示断开连接事件。 | callback | Callback<{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
参数:
参数名类型必填说明type | string | 是 | 订阅的事件类型。'message’表示接收消息事件。 | callback | Callback<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
参数:
参数名类型必填说明type | string | 是 | 取消订阅的事件类型。'message’表示接收消息事件。 | callback | Callback<MqttMessage> | 否 | 回调函数。 | 示例:
khMqtt.off('message', (data) => { console.log("off message success " + JSON.stringify(data));});MqttMessage
接收的mqtt消息结构体。
参数名类型必填说明mid | number | 否 | 消息ID | topic | string | 否 | 消息主题 | payload | string | 否 | 消息内容 | payloadlen | number | 否 | 消息长度 | qos | number | 否 | 0、1 或 2,指示用于消息的服务质量 | retain | boolean | 否 | 设置为true以保留消息 | TlsConfig
TLS配置结构体。
参数名类型必填说明cafile | string | 是 | ca文件 | capath | string | 是 | ca文件路径 | certfile | string | 是 | cert文件 | keyfile | string | 是 | key文件路径 | ResponseCode
请求结果返回码。
返回码值说明MQTT_OK | 0 | 返回值正确 | 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 | 断开连接失败 |
|