MQTT Objective-C client for iOS
C Objective-C Ruby
#6 Compare This branch is 4 commits behind mobile-web-messaging:master.
Latest commit aaf4a22 Sep 13, 2014 @jmesnil Merge pull request #4 from scapegoat4U/patch-1
Serious bug in MQTTKit.m


Build Status

MQTTKit is a modern event-driven Objective-C library for MQTT 3.1.

It uses Mosquitto 1.2.3 library.

An iOS application using MQTTKit is available at MQTTExample.

Installation Using CocoaPods

On your Podfile add this project:

pod 'MQTTKit', :git => ''

For the first time, run pod install, if you are updating the project invoke pod update.


Import the MQTTKit.h header file

#import <MQTTKit.h>

Send a Message

// create the client with a unique client ID
NSString *clientID = ...
MQTTClient *client = [[MQTTClient alloc] initWithClientId:clientID];

// connect to the MQTT server
[self.client connectToHost:@"" 
         completionHandler:^(NSUInteger code) {
    if (code == ConnectionAccepted) {
        // when the client is connected, send a MQTT message
        [self.client publishString:@"Hello, MQTT"
                 completionHandler:^(int mid) {
            NSLog(@"message has been delivered");

Subscribe to a Topic and Receive Messages

// define the handler that will be called when MQTT messages are received by the client
[self.client setMessageHandler:^(MQTTMessage *message) {
    NSString *text = [message.payloadString];
    NSLog(@"received message %@", text);

// connect the MQTT client
[self.client connectToHost:@""
         completionHandler:^(MQTTConnectionReturnCode code) {
    if (code == ConnectionAccepted) {
        // when the client is connected, subscribe to the topic to receive message.
        [self.client subscribe:@"/MQTTKit/example"

Disconnect from the server

[self.client disconnectWithCompletionHandler:^(NSUInteger code) {
    // The client is disconnected when this completion handler is called
    NSLog(@"MQTT client is disconnected");