You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
公司电脑
b5bc8dd66d
|
1 year ago | |
---|---|---|
.. | ||
MQTTClient/MQTTClient | 1 year ago | |
LICENSE | 1 year ago | |
README.md | 1 year ago |
README.md
MQTT-Client-Framework
an Objective-C native MQTT Framework http://mqtt.org
Tested with
- mosquitto
- paho
- rabbitmq
- hivemq
- rsmb
- mosca
- vernemq
- emqtt
- moquette
- ActiveMQ
- Apollo
- CloudMQTT
- aws
- hbmqtt (MQTTv311 only, limitations)
As a CocoaPod
Use the CocoaPod MQTTClient!
Add this to your Podfile:
pod 'MQTTClient'
which is a short for
pod 'MQTTClient/Min'
pod 'MQTTClient/Manager'
The Manager subspec includes the MQTTSessionManager class.
Additionally add this subspec if you want to use MQTT over Websockets:
pod 'MQTTClient/Websocket'
If you want to do your logging with CocoaLumberjack (my suggestion), use
pod 'MQTTClient/MinL'
pod 'MQTTClient/ManagerL'
pod 'MQTTClient/WebsocketL'
instead.
As a dynamic library
Or use the dynamic library created in the MQTTFramework target.
As source
Or include the source from here.
With Carthage
Usage
Create a new client and connect to a broker:
#import "MQTTClient.h"
\@interface MyDelegate : ... <MQTTSessionDelegate>
...
MQTTCFSocketTransport *transport = [[MQTTCFSocketTransport alloc] init];
transport.host = @"localhost";
transport.port = 1883;
MQTTSession *session = [[MQTTSession alloc] init];
session.transport = transport;
session.delegate = self;
[session connectAndWaitTimeout:30]; //this is part of the synchronous API
Subscribe to a topic:
[session subscribeToTopic:@"example/#" atLevel:2 subscribeHandler:^(NSError *error, NSArray<NSNumber *> *gQoss){
if (error) {
NSLog(@"Subscription failed %@", error.localizedDescription);
} else {
NSLog(@"Subscription sucessfull! Granted Qos: %@", gQoss);
}
}]; // this is part of the block API
Add the following to receive messages for the subscribed topics
- (void)newMessage:(MQTTSession *)session
data:(NSData *)data
onTopic:(NSString *)topic
qos:(MQTTQosLevel)qos
retained:(BOOL)retained
mid:(unsigned int)mid {
// this is one of the delegate callbacks
}
Publish a message to a topic:
[session publishAndWaitData:data
onTopic:@"topic"
retain:NO
qos:MQTTQosLevelAtLeastOnce]; // this is part of the asynchronous API
docs
Documentation generated with doxygen http://doxygen.org in Documentation
Comparison MQTT Clients for iOS (incomplete)
Wrapper | --- | ---- | MQTTKit | Marquette | Moscapsule | Musqueteer | MQTT-Client | MqttSDK | CocoaMQTT |
---|---|---|---|---|---|---|---|---|---|
Obj-C | Obj-C | Swift | Obj-C | Obj-C | Obj-C | Swift | |||
Library | IBM | Paho | Mosquitto | Mosquitto | Mosquitto | Mosquitto | native | native | native |