CocoaPods trunk is moving to be read-only. Read more on the blog, there are 19 months to go.

SwiftMQTT 3.0.1

SwiftMQTT 3.0.1

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Apr 2019
SPMSupports SPM

Maintained by Adolfo Martinelli.



SwiftMQTT 3.0.1

  • By
  • Ankit Agarwal

SwiftMQTT

MQTT Client

Build Status Version License

Usage

Create Session

mqttSession = MQTTSession(
	host: "localhost",
	port: 1883,
	clientID: "swift", // must be unique to the client
	cleanSession: true,
	keepAlive: 15,
	useSSL: false
)

Connect

mqttSession.connect { error in
    if error == .none {
        print("Connected!")
    } else {
        print(error.description)
    }
}

Subscribe

let topic = "mytopic" 
mqttSession.subscribe(to: topic, delivering: .atLeastOnce) { error in
    if error == .none {
        print("Subscribed to \(topic)!")
    } else {
        print(error.description)
    }
}

Unsubscribe

let topic = "mytopic"
mqttSession.unSubscribe(from: topic) { error in
    if error == .none {
        print("Unsubscribed from \(topic)!")
    } else {
        print(error.description)
    }
}

Publish

let json = ["key" : "value"]
let data = try! JSONSerialization.data(withJSONObject: json, options: .prettyPrinted)
let topic = "mytopic"

mqttSession.publish(data, in: topic, delivering: .atLeastOnce, retain: false) { error in
    if error == .none {
        print("Published data in \(topic)!")
    } else {
        print(error.description)
    }
}

Conform to MQTTSessionDelegate to receive messages

mqttSession.delegate = self
func mqttDidReceive(message: MQTTMessage, from session: MQTTSession) {
    print(message.topic)
    print(message.stringRepresentation)
}
func mqttDidDisconnect(session: MQTTSession, error: MQTTSessionError) {
    if error == .none {
        print("Successfully disconnected from MQTT broker")
    } else {
        print(error.description)
    }
}

Installation

CocoaPods

Install using CocoaPods by adding the following lines to your Podfile:

target 'MyApp' do
    use_frameworks!
    pod 'SwiftMQTT'
end

Carthage

github "aciidb0mb3r/SwiftMQTT"

Swift Package Manager

dependencies: [
    .package(url: "https://github.com/aciidb0mb3r/SwiftMQTT.git", from: "3.0.0")
]

License

MIT