用于 iOS 或 macOS 的 Swift MQTT 客户端 【中文介绍

特性

要求

集成

Swift Package Manager

Package.swift 中添加此依赖项

// swift-tools-version:4.0
import PackageDescription

let package = Package(
    // ...
    dependencies: [
        .package(url: "https://github.com/HJianBo/Mqtt", from: "0.2.0"),
    ],
    // ...
)

Carthage

将以下行添加到您的 Cartfile

github "HJianBo/Mqtt"

然后检出此仓库

carthage build

但是会发生编译错误,因为 Mqtt 有一些其他的依赖项,使用 Swift Package Manager

这里有一个解决方法如下:

# Manually checkout SwiftPM dependencies
cd Carthage/Checkouts/Mqtt/ && swift build && cd ../../..

# execute carthage build again
carthage build

CocoaPods

敬请期待...

用法

首先,您应该在 .swift 文件头部导入框架

import Mqtt

创建一个客户端

let client = MqttClient(clientId: "mqtt-client-t")

连接到服务器

client.connect(host: "q.emqtt.com") { address, error in
    guard error == nil else {
        print("connect failed, error: \(error)")
        return
    }
    print("connect successful! address: \(address)")
}

使用主题过滤器订阅主题

client.subscribe(topicFilters: ["topic": .qos1]) { (res, error) in 
    guard error == nil else {
        print("subscribe topic error: \(error)")
        return
    }
    print("subscribe successful! topic authorized result: \(res)")
}

将消息发布到某个主题

client.publish(topic: "topic", payload: "hi~🙄", qos: .qos2) { error in
    guard error == nil else {
        print("publish message error: \(error)")
        return
    }
    print("publish message successful!")
}

更多使用细节可以参考示例程序:Examples/SimpleClient

TODO

依赖