Skip to main content

取消订阅

取消订阅

取消订阅是在对某个、某些topic不感兴趣的时候,不想再接收到这些topic消息的时候,主动取消订阅。

签名为:client#unsubscribe(topic, [options], [callback])

其中topic可以是String,也可以是String数组,表示多个topic

options可以忽略,使用mqtt 5才会用到,callback回调函数会在收到unsuback时候调用,也就是服务端确认取消订阅之后。

示例代码:

client.unsubscribe(['test/topic'], function (err) {
console.log(err, arguments.length)
})

完整测试代码:

app.js
import {connect, Buffer} from './utils/mqtt.min'

App({
onLaunch() {
let client = connect({
protocol: 'wxs',
host: 'mqttx.cn',
port: 8883,
path: '/mqtt',
clientId: 'test',
clean: false
})
client.on('connect', function (connack) {
console.log('connected', connack.sessionPresent)
client.subscribe('test/topic', {qos: 1}, function (err) {
if (!err) {
client.publish('test/topic', Buffer.from([0x01, 0o02, 0x03]), {qos: 1})
client.unsubscribe(['test/topic'], function (err) {
console.log(err, arguments.length)
})
}
})
})
client.on('message', function (topic, payload, packet) {
console.log(payload)
})
}
})

取消订阅之后,就收不到对应topic的消息了。