MQTT Client for iOS written in Swift
MQTT Clientのswift版作ったので公開。
実体はMosquittoのWrapperです。
flightonary/Moscapsule · GitHub
こんな感じで使えます。
import Moscapsule // set MQTT Client Configuration let mqttConfig = MQTTConfig(clientId: "cid", host: "test.mosquitto.org", port: 1883, keepAlive: 60) mqttConfig.onPublishCallback = { messageId in NSLog("published (mid=\(messageId))") } mqttConfig.onMessageCallback = { mqttMessage in NSLog("MQTT Message received: payload=\(mqttMessage.payloadString)") } // create new MQTT Connection let mqttClient = MQTT.invokeMqttConnection(mqttConfig) // publish and subscribe mqttClient.publishString("message", topic: "publish/topic", qos: 2, retain: false) mqttClient.subscribe("subscribe/topic", qos: 2) // disconnect mqttClient.disconnect()
実装にあたってswiftからCをそのまま呼び出せるのでCで実装されたMosquittoを使うのは難しくありません。ただし、swiftで定義したfuncやclosureのポインターをcallbackとしてC側に渡すことはできないので、Objective-Cでブリッジさせるのがコツ。