diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f660b14..fb079441 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ MQTT-Client-Framework iOS Release Notes ======================================= +## MQTT-Client-Framework 0.2.6 +>Release date: 2015-08-25 + +[NEW] MQTTSessionManager init with Persistence settings +[NEW] MQTTSessionManager with optional SSL security policy + ## MQTT-Client-Framework 0.2.5 >Release date: 2015-08-22 diff --git a/MQTTClient.podspec b/MQTTClient.podspec index 8c2663f6..c332e63d 100644 --- a/MQTTClient.podspec +++ b/MQTTClient.podspec @@ -1,11 +1,11 @@ Pod::Spec.new do |s| s.name = "MQTTClient" - s.version = "0.2.5" + s.version = "0.2.6" s.summary = "IOS native ObjectiveC MQTT Framework" s.homepage = "https://github.com/ckrey/MQTT-Client-Framework" s.license = { :type => "MIT", :file => "LICENSE" } s.author = { "Christoph Krey" => "krey.christoph@gmail.com" } - s.source = { :git => "https://github.com/ckrey/MQTT-Client-Framework.git", :tag => "0.2.5" } + s.source = { :git => "https://github.com/ckrey/MQTT-Client-Framework.git", :tag => "0.2.6" } s.source_files = "MQTTClient/MQTTClient", "MQTTClient/MQTTClient/**/*.{h,m}" s.requires_arc = true diff --git a/MQTTClient/MQTTClient/MQTTPersistence.h b/MQTTClient/MQTTClient/MQTTPersistence.h index 63ba3f27..07f7288f 100644 --- a/MQTTClient/MQTTClient/MQTTPersistence.h +++ b/MQTTClient/MQTTClient/MQTTPersistence.h @@ -31,12 +31,12 @@ - (NSUInteger)windowSize:(NSString *)clientId; - (MQTTFlow *)storeMessageForClientId:(NSString *)clientId - topic:(NSString *)topic - data:(NSData *)data - retainFlag:(BOOL)retainFlag - qos:(MQTTQosLevel)qos - msgId:(UInt16)msgId - incomingFlag:(BOOL)incomingFlag; + topic:(NSString *)topic + data:(NSData *)data + retainFlag:(BOOL)retainFlag + qos:(MQTTQosLevel)qos + msgId:(UInt16)msgId + incomingFlag:(BOOL)incomingFlag; - (void)deleteFlow:(MQTTFlow *)flow; - (void)deleteAllFlowsForClientId:(NSString *)clientId; diff --git a/MQTTClient/MQTTClient/MQTTSessionManager.h b/MQTTClient/MQTTClient/MQTTSessionManager.h index 9654c88e..1df900b4 100644 --- a/MQTTClient/MQTTClient/MQTTSessionManager.h +++ b/MQTTClient/MQTTClient/MQTTSessionManager.h @@ -27,8 +27,6 @@ typedef NS_ENUM(int, MQTTSessionManagerState) { MQTTSessionManagerStateClosed }; - - /** gets called when a new message was received @param data the data received, might be zero length @param topic the topic the data was published to @@ -60,9 +58,24 @@ typedef NS_ENUM(int, MQTTSessionManagerState) { */ @property (nonatomic, readonly) NSError *lastErrorCode; +/** initWithPersistence sets the MQTTPersistence properties other than default + * @param persistent YES or NO (default) to establish file or in memory persistence. + * @param maxWindowSize (a positive number, default is 16) to control the number of messages sent before waiting for acknowledgement in Qos 1 or 2. Additional messages are stored and transmitted later. + * @param maxSize (a positive number of bytes, default is 64 MB) to limit the size of the persistence file. Messages published after the limit is reached are dropped. + * @param maxMessages (a positive number, default is 1024) to limit the number of messages stored. Additional messages published are dropped. + * @return the initialized MQTTSessionManager object + */ + +- (MQTTSessionManager *)initWithPersistence:(BOOL)persistent + maxWindowSize:(NSUInteger)maxWindowSize + maxMessages:(NSUInteger)maxMessages + maxSize:(NSUInteger)maxSize; + + + /** Connects to the MQTT broker and stores the parameters for subsequent reconnects * @param host specifies the hostname or ip address to connect to. Defaults to @"localhost". - * @param port spefies the port to connect to + * @param port specifies the port to connect to * @param tls specifies whether to use SSL or not * @param keepalive The Keep Alive is a time interval measured in seconds. The MQTTClient ensures that the interval between Control Packets being sent does not exceed the Keep Alive value. In the absence of sending any other Control Packets, the Client sends a PINGREQ Packet. * @param clean specifies if the server should discard previous session information. @@ -70,13 +83,48 @@ typedef NS_ENUM(int, MQTTSessionManagerState) { * @param user an NSString object containing the user's name (or ID) for authentication. May be nil. * @param pass an NSString object containing the user's password. If userName is nil, password must be nil as well. * @param will indicates whether a will shall be sent - * @param willTopic the Will Topic is a string, must not be nil - * @param willMsg the Will Message, might be zero length + * @param willTopic the Will Topic is a string, may be nil + * @param willMsg the Will Message, might be zero length or nil * @param willQos specifies the QoS level to be used when publishing the Will Message. * @param willRetainFlag indicates if the server should publish the Will Messages with retainFlag. * @param clientId The Client Identifier identifies the Client to the Server. If nil, a random clientId is generated. - * @return the initialised MQTTSessionManager object -*/ + * @param securityPolicy A custom SSL security policy or nil. + * @param certificates An NSArray of the pinned certificates to use or nil. + */ + +- (void)connectTo:(NSString *)host + port:(NSInteger)port + tls:(BOOL)tls + keepalive:(NSInteger)keepalive + clean:(BOOL)clean + auth:(BOOL)auth + user:(NSString *)user + pass:(NSString *)pass + will:(BOOL)will + willTopic:(NSString *)willTopic + willMsg:(NSData *)willMsg + willQos:(MQTTQosLevel)willQos + willRetainFlag:(BOOL)willRetainFlag + withClientId:(NSString *)clientId + securityPolicy:(MQTTSSLSecurityPolicy *)securityPolicy + certificates:(NSArray *)certificates; + +/** Convenience alternative to full paramter connectTo + * @param host see connectTo description + * @param port see connectTo description + * @param tls see connectTo description + * @param keepalive see connectTo description + * @param clean see connectTo description + * @param auth see connectTo description + * @param user see connectTo description + * @param pass see connectTo description + * @param will see connectTo description + * @param willTopic see connectTo description + * @param willMsg see connectTo description + * @param willQos see connectTo description + * @param willRetainFlag see connectTo description + * @param clientId see connectTo description + */ - (void)connectTo:(NSString *)host port:(NSInteger)port @@ -93,24 +141,23 @@ typedef NS_ENUM(int, MQTTSessionManagerState) { willRetainFlag:(BOOL)willRetainFlag withClientId:(NSString *)clientId; -/** Connects to the MQTT broker and stores the parameters for subsequent reconnects - * @param host specifies the hostname or ip address to connect to. Defaults to @"localhost". - * @param port spefies the port to connect to - * @param tls specifies whether to use SSL or not - * @param keepalive The Keep Alive is a time interval measured in seconds. The MQTTClient ensures that the interval between Control Packets being sent does not exceed the Keep Alive value. In the absence of sending any other Control Packets, the Client sends a PINGREQ Packet. - * @param clean specifies if the server should discard previous session information. - * @param auth specifies the user and pass parameters should be used for authenthication - * @param user an NSString object containing the user's name (or ID) for authentication. May be nil. - * @param pass an NSString object containing the user's password. If userName is nil, password must be nil as well. +/** Convenience alternative to full paramter connectTo + * @param host see connectTo description + * @param port see connectTo description + * @param tls see connectTo description + * @param keepalive see connectTo description + * @param clean see connectTo description + * @param auth see connectTo description + * @param user see connectTo description + * @param pass see connectTo description * @param willTopic the Will Topic is a string, must not be nil * @param will the Will Message, might be zero length - * @param willQos specifies the QoS level to be used when publishing the Will Message. - * @param willRetainFlag indicates if the server should publish the Will Messages with retainFlag. - * @param clientId The Client Identifier identifies the Client to the Server. If nil, a random clientId is generated. - * @return the initialised MQTTSessionManager object + * @param willQos see connectTo description + * @param willRetainFlag see connectTo description + * @param clientId see connectTo description */ - - (void)connectTo:(NSString *)host +- (void)connectTo:(NSString *)host port:(NSInteger)port tls:(BOOL)tls keepalive:(NSInteger)keepalive diff --git a/MQTTClient/MQTTClient/MQTTSessionManager.m b/MQTTClient/MQTTClient/MQTTSessionManager.m index 20a66910..d3d0e5ba 100644 --- a/MQTTClient/MQTTClient/MQTTSessionManager.m +++ b/MQTTClient/MQTTClient/MQTTSessionManager.m @@ -32,12 +32,19 @@ @interface MQTTSessionManager() @property (nonatomic) NSInteger willQos; @property (nonatomic) BOOL willRetainFlag; @property (strong, nonatomic) NSString *clientId; +@property (strong, nonatomic) MQTTSSLSecurityPolicy *securityPolicy; +@property (strong, nonatomic) NSArray *certificates; @property (strong, nonatomic) NSTimer *disconnectTimer; @property (strong, nonatomic) NSTimer *activityTimer; @property (nonatomic) UIBackgroundTaskIdentifier backgroundTask; @property (strong, nonatomic) void (^completionHandler)(UIBackgroundFetchResult); +@property (nonatomic) BOOL persistent; +@property (nonatomic) NSUInteger maxWindowSize; +@property (nonatomic) NSUInteger maxSize; +@property (nonatomic) NSUInteger maxMessages; + @end #define RECONNECT_TIMER 1.0 @@ -49,7 +56,6 @@ - (id)init { self = [super init]; - self.state = MQTTSessionManagerStateStarting; self.backgroundTask = UIBackgroundTaskInvalid; self.completionHandler = nil; @@ -73,6 +79,18 @@ - (id)init return self; } +- (MQTTSessionManager *)initWithPersistence:(BOOL)persistent + maxWindowSize:(NSUInteger)maxWindowSize + maxMessages:(NSUInteger)maxMessages + maxSize:(NSUInteger)maxSize { + self = [self init]; + self.persistent = persistent; + self.maxWindowSize = maxWindowSize; + self.maxSize = maxSize; + self.maxMessages = maxMessages; + return self; +} + - (void)appWillResignActive { [self disconnect]; @@ -137,6 +155,41 @@ - (void)connectTo:(NSString *)host willQos:(MQTTQosLevel)willQos willRetainFlag:(BOOL)willRetainFlag withClientId:(NSString *)clientId +{ + [self connectTo:host + port:port + tls:tls + keepalive:keepalive + clean:clean + auth:auth + user:user + pass:pass + will:will + willTopic:willTopic + willMsg:willMsg + willQos:willQos + willRetainFlag:willRetainFlag + withClientId:clientId + securityPolicy:nil + certificates:nil]; +} + +- (void)connectTo:(NSString *)host + port:(NSInteger)port + tls:(BOOL)tls + keepalive:(NSInteger)keepalive + clean:(BOOL)clean + auth:(BOOL)auth + user:(NSString *)user + pass:(NSString *)pass + will:(BOOL)will + willTopic:(NSString *)willTopic + willMsg:(NSData *)willMsg + willQos:(MQTTQosLevel)willQos + willRetainFlag:(BOOL)willRetainFlag + withClientId:(NSString *)clientId + securityPolicy:(MQTTSSLSecurityPolicy *)securityPolicy + certificates:(NSArray *)certificates { if (!self.session || ![host isEqualToString:self.host] || @@ -151,7 +204,9 @@ - (void)connectTo:(NSString *)host ![willMsg isEqualToData:self.willMsg] || willQos != self.willQos || willRetainFlag != self.willRetainFlag || - ![clientId isEqualToString:self.clientId]) { + ![clientId isEqualToString:self.clientId] || + securityPolicy != self.securityPolicy || + certificates != self.certificates) { self.host = host; self.port = (int)port; self.tls = tls; @@ -166,6 +221,8 @@ - (void)connectTo:(NSString *)host self.willQos = willQos; self.willRetainFlag = willRetainFlag; self.clientId = clientId; + self.securityPolicy = securityPolicy; + self.certificates = certificates; self.session = [[MQTTSession alloc] initWithClientId:clientId userName:auth ? user : nil @@ -179,7 +236,15 @@ - (void)connectTo:(NSString *)host willRetainFlag:willRetainFlag protocolLevel:4 runLoop:[NSRunLoop currentRunLoop] - forMode:NSDefaultRunLoopMode]; + forMode:NSDefaultRunLoopMode + securityPolicy:securityPolicy + certificates:certificates]; + + self.session.persistence.persistent = self.persistent; + self.session.persistence.maxWindowSize = self.maxWindowSize; + self.session.persistence.maxSize = self.maxSize; + self.session.persistence.maxMessages = self.maxMessages; + self.session.delegate = self; self.reconnectTime = RECONNECT_TIMER; self.reconnectFlag = FALSE; diff --git a/MQTTClient/MQTTClientTests/MQTTSessionManagerTests.m b/MQTTClient/MQTTClientTests/MQTTSessionManagerTests.m index 0745ce27..167fee85 100644 --- a/MQTTClient/MQTTClientTests/MQTTSessionManagerTests.m +++ b/MQTTClient/MQTTClientTests/MQTTSessionManagerTests.m @@ -129,4 +129,88 @@ - (void)timeout:(NSTimer *)timer { self.step++; } +- (void)testMQTTSessionManagerPersistent { + for (NSString *broker in BROKERLIST) { + NSLog(@"testing broker %@", broker); + NSDictionary *parameters = BROKERS[broker]; + + self.step = -1; + NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:[parameters[@"timeout"] intValue] + target:self + selector:@selector(timeout:) + userInfo:nil + repeats:true]; + + self.received = 0; + MQTTSessionManager *manager = [[MQTTSessionManager alloc] initWithPersistence:true + maxWindowSize:2 + maxMessages:1024 + maxSize:64*1024*1024]; + manager.delegate = self; + manager.subscriptions = [@{@"#": @(0)} mutableCopy]; + [manager connectTo:parameters[@"host"] + port:[parameters[@"port"] intValue] + tls:[parameters[@"tls"] boolValue] + keepalive:60 + clean:TRUE + auth:NO + user:nil + pass:nil + will:NO + willTopic:nil + willMsg:nil + willQos:MQTTQosLevelAtMostOnce + willRetainFlag:FALSE + withClientId:@"MQTTSessionManager"]; + while (self.step == -1 && manager.state != MQTTSessionManagerStateConnected) { + NSLog(@"waiting for connect %d", manager.state); + [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]]; + } + XCTAssertEqual(manager.state, MQTTSessionManagerStateConnected); + + while (self.step <= 0) { + NSLog(@"received %d on #", self.received); + [manager sendData:[@"data" dataUsingEncoding:NSUTF8StringEncoding] topic:@"MQTTSessionManager" qos:MQTTQosLevelExactlyOnce retain:FALSE]; + self.sent++; + [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:.1]]; + } + XCTAssertEqual(self.received, self.sent); + + manager.subscriptions = [@{@"#": @(0),@"$SYS/#": @(0)} mutableCopy]; + while (self.step == 1) { + NSLog(@"received %d on # or $SYS/#", self.received); + [manager sendData:[@"data" dataUsingEncoding:NSUTF8StringEncoding] topic:@"MQTTSessionManager" qos:MQTTQosLevelExactlyOnce retain:FALSE]; + self.sent++; + [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:.1]]; + } + XCTAssertEqual(self.received, self.sent); + + manager.subscriptions = [@{@"$SYS/#": @(0)} mutableCopy]; + while (self.step <= 2) { + NSLog(@"received %d on $SYS/#", self.received); + [manager sendData:[@"data" dataUsingEncoding:NSUTF8StringEncoding] topic:@"MQTTSessionManager" qos:MQTTQosLevelExactlyOnce retain:FALSE]; + [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:.1]]; + } + XCTAssertEqual(self.received, self.sent); + + manager.subscriptions = [@{} mutableCopy]; + while (self.step <= 3) { + NSLog(@"received %d on nothing", self.received); + [manager sendData:[@"data" dataUsingEncoding:NSUTF8StringEncoding] topic:@"MQTTSessionManager" qos:MQTTQosLevelExactlyOnce retain:FALSE]; + [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:.1]]; + } + XCTAssertEqual(self.received, self.sent); + + [manager disconnect]; + while (self.step <= 4) { + NSLog(@"received %d after disconnect", self.received); + [manager sendData:[@"data" dataUsingEncoding:NSUTF8StringEncoding] topic:@"MQTTSessionManager" qos:MQTTQosLevelExactlyOnce retain:FALSE]; + [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:.1]]; + } + XCTAssertEqual(self.received, self.sent); + [timer invalidate]; + } +} + + @end diff --git a/MQTTClient/dist/MQTTClient.framework/Versions/A/Headers/MQTTPersistence.h b/MQTTClient/dist/MQTTClient.framework/Versions/A/Headers/MQTTPersistence.h index 63ba3f27..07f7288f 100644 --- a/MQTTClient/dist/MQTTClient.framework/Versions/A/Headers/MQTTPersistence.h +++ b/MQTTClient/dist/MQTTClient.framework/Versions/A/Headers/MQTTPersistence.h @@ -31,12 +31,12 @@ - (NSUInteger)windowSize:(NSString *)clientId; - (MQTTFlow *)storeMessageForClientId:(NSString *)clientId - topic:(NSString *)topic - data:(NSData *)data - retainFlag:(BOOL)retainFlag - qos:(MQTTQosLevel)qos - msgId:(UInt16)msgId - incomingFlag:(BOOL)incomingFlag; + topic:(NSString *)topic + data:(NSData *)data + retainFlag:(BOOL)retainFlag + qos:(MQTTQosLevel)qos + msgId:(UInt16)msgId + incomingFlag:(BOOL)incomingFlag; - (void)deleteFlow:(MQTTFlow *)flow; - (void)deleteAllFlowsForClientId:(NSString *)clientId; diff --git a/MQTTClient/dist/MQTTClient.framework/Versions/A/MQTTClient b/MQTTClient/dist/MQTTClient.framework/Versions/A/MQTTClient index 923d9caf..c6589c62 100644 Binary files a/MQTTClient/dist/MQTTClient.framework/Versions/A/MQTTClient and b/MQTTClient/dist/MQTTClient.framework/Versions/A/MQTTClient differ diff --git a/MQTTClient/dist/documentation/html/Nodes.xml b/MQTTClient/dist/documentation/html/Nodes.xml index bb578835..7610124c 100644 --- a/MQTTClient/dist/documentation/html/Nodes.xml +++ b/MQTTClient/dist/documentation/html/Nodes.xml @@ -424,6 +424,11 @@ interface_m_q_t_t_session_manager.html af50a6c56e8d19ef1e739cccb9e11722a + + connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId:securityPolicy:certificates: + interface_m_q_t_t_session_manager.html + a58a397cb2851b3bb5c3cf2a49c109204 + connectTo:port:tls:keepalive:clean:auth:user:pass:willTopic:will:willQos:willRetainFlag:withClientId: interface_m_q_t_t_session_manager.html @@ -439,6 +444,11 @@ interface_m_q_t_t_session_manager.html a71161804d040ca10e164578d7e7eb855 + + initWithPersistence:maxWindowSize:maxMessages:maxSize: + interface_m_q_t_t_session_manager.html + a99bcb6e9ae06072f890947a4f53d7dd2 + sendData:topic:qos:retain: interface_m_q_t_t_session_manager.html diff --git a/MQTTClient/dist/documentation/html/Tokens.xml b/MQTTClient/dist/documentation/html/Tokens.xml index fad89363..1f7646f3 100644 --- a/MQTTClient/dist/documentation/html/Tokens.xml +++ b/MQTTClient/dist/documentation/html/Tokens.xml @@ -878,6 +878,28 @@ interface_m_q_t_t_session_manager.html MQTTSessionManager.h + + + initWithPersistence:maxWindowSize:maxMessages:maxSize: + occ + instm + MQTTSessionManager + + interface_m_q_t_t_session_manager.html + a99bcb6e9ae06072f890947a4f53d7dd2 + MQTTSessionManager.h + + + + connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId:securityPolicy:certificates: + occ + instm + MQTTSessionManager + + interface_m_q_t_t_session_manager.html + a58a397cb2851b3bb5c3cf2a49c109204 + MQTTSessionManager.h + connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId: diff --git a/MQTTClient/dist/documentation/html/_m_q_t_t_session_8h_source.html b/MQTTClient/dist/documentation/html/_m_q_t_t_session_8h_source.html index 002c535b..08d7830f 100644 --- a/MQTTClient/dist/documentation/html/_m_q_t_t_session_8h_source.html +++ b/MQTTClient/dist/documentation/html/_m_q_t_t_session_8h_source.html @@ -398,7 +398,7 @@ diff --git a/MQTTClient/dist/documentation/html/_m_q_t_t_session_manager_8h_source.html b/MQTTClient/dist/documentation/html/_m_q_t_t_session_manager_8h_source.html index 05f01146..2f54a9c5 100644 --- a/MQTTClient/dist/documentation/html/_m_q_t_t_session_manager_8h_source.html +++ b/MQTTClient/dist/documentation/html/_m_q_t_t_session_manager_8h_source.html @@ -108,70 +108,92 @@
27  MQTTSessionManagerStateClosed
28 };
29 
-
30 
-
31 
-
37 - (void)handleMessage:(NSData *)data onTopic:(NSString *)topic retained:(BOOL)retained;
-
38 @end
-
39 
-
42 @interface MQTTSessionManager : NSObject <MQTTSessionDelegate>
-
43 
-
46 @property (weak, nonatomic) id<MQTTSessionManagerDelegate> delegate;
-
47 
-
53 @property (strong, nonatomic) NSMutableDictionary *subscriptions;
-
54 
-
57 @property (nonatomic, readonly) MQTTSessionManagerState state;
-
58 
-
61 @property (nonatomic, readonly) NSError *lastErrorCode;
-
62 
-
81 - (void)connectTo:(NSString *)host
-
82  port:(NSInteger)port
-
83  tls:(BOOL)tls
-
84  keepalive:(NSInteger)keepalive
-
85  clean:(BOOL)clean
-
86  auth:(BOOL)auth
-
87  user:(NSString *)user
-
88  pass:(NSString *)pass
-
89  will:(BOOL)will
-
90  willTopic:(NSString *)willTopic
-
91  willMsg:(NSData *)willMsg
-
92  willQos:(MQTTQosLevel)willQos
-
93  willRetainFlag:(BOOL)willRetainFlag
-
94  withClientId:(NSString *)clientId;
-
95 
-
113  - (void)connectTo:(NSString *)host
-
114  port:(NSInteger)port
-
115  tls:(BOOL)tls
-
116  keepalive:(NSInteger)keepalive
-
117  clean:(BOOL)clean
-
118  auth:(BOOL)auth
-
119  user:(NSString *)user
-
120  pass:(NSString *)pass
-
121  willTopic:(NSString *)willTopic
-
122  will:(NSData *)will
-
123  willQos:(MQTTQosLevel)willQos
-
124  willRetainFlag:(BOOL)willRetainFlag
-
125  withClientId:(NSString *)clientId;
-
126 
-
129 - (void)connectToLast;
-
130 
-
141 - (UInt16)sendData:(NSData *)data topic:(NSString *)topic qos:(MQTTQosLevel)qos retain:(BOOL)retainFlag;
-
142 
-
145 - (void)disconnect;
-
146 
-
147 @end
+
35 - (void)handleMessage:(NSData *)data onTopic:(NSString *)topic retained:(BOOL)retained;
+
36 @end
+
37 
+
40 @interface MQTTSessionManager : NSObject <MQTTSessionDelegate>
+
41 
+
44 @property (weak, nonatomic) id<MQTTSessionManagerDelegate> delegate;
+
45 
+
51 @property (strong, nonatomic) NSMutableDictionary *subscriptions;
+
52 
+
55 @property (nonatomic, readonly) MQTTSessionManagerState state;
+
56 
+
59 @property (nonatomic, readonly) NSError *lastErrorCode;
+
60 
+
69 - (MQTTSessionManager *)initWithPersistence:(BOOL)persistent
+
70  maxWindowSize:(NSUInteger)maxWindowSize
+
71  maxMessages:(NSUInteger)maxMessages
+
72  maxSize:(NSUInteger)maxSize;
+
73 
+
74 
+
75 
+
95 - (void)connectTo:(NSString *)host
+
96  port:(NSInteger)port
+
97  tls:(BOOL)tls
+
98  keepalive:(NSInteger)keepalive
+
99  clean:(BOOL)clean
+
100  auth:(BOOL)auth
+
101  user:(NSString *)user
+
102  pass:(NSString *)pass
+
103  will:(BOOL)will
+
104  willTopic:(NSString *)willTopic
+
105  willMsg:(NSData *)willMsg
+
106  willQos:(MQTTQosLevel)willQos
+
107  willRetainFlag:(BOOL)willRetainFlag
+
108  withClientId:(NSString *)clientId
+
109  securityPolicy:(MQTTSSLSecurityPolicy *)securityPolicy
+
110  certificates:(NSArray *)certificates;
+
111 
+
129 - (void)connectTo:(NSString *)host
+
130  port:(NSInteger)port
+
131  tls:(BOOL)tls
+
132  keepalive:(NSInteger)keepalive
+
133  clean:(BOOL)clean
+
134  auth:(BOOL)auth
+
135  user:(NSString *)user
+
136  pass:(NSString *)pass
+
137  will:(BOOL)will
+
138  willTopic:(NSString *)willTopic
+
139  willMsg:(NSData *)willMsg
+
140  willQos:(MQTTQosLevel)willQos
+
141  willRetainFlag:(BOOL)willRetainFlag
+
142  withClientId:(NSString *)clientId;
+
143 
+
160 - (void)connectTo:(NSString *)host
+
161  port:(NSInteger)port
+
162  tls:(BOOL)tls
+
163  keepalive:(NSInteger)keepalive
+
164  clean:(BOOL)clean
+
165  auth:(BOOL)auth
+
166  user:(NSString *)user
+
167  pass:(NSString *)pass
+
168  willTopic:(NSString *)willTopic
+
169  will:(NSData *)will
+
170  willQos:(MQTTQosLevel)willQos
+
171  willRetainFlag:(BOOL)willRetainFlag
+
172  withClientId:(NSString *)clientId;
+
173 
+
176 - (void)connectToLast;
+
177 
+
188 - (UInt16)sendData:(NSData *)data topic:(NSString *)topic qos:(MQTTQosLevel)qos retain:(BOOL)retainFlag;
+
189 
+
192 - (void)disconnect;
+
193 
+
194 @end
Definition: MQTTSessionManager.h:16
-
NSError * lastErrorCode
Definition: MQTTSessionManager.h:61
+
NSError * lastErrorCode
Definition: MQTTSessionManager.h:59
-
Definition: MQTTSessionManager.h:42
+
Definition: MQTTSessionManager.h:40
Definition: MQTTSession.h:32
-
NSMutableDictionary * subscriptions
Definition: MQTTSessionManager.h:53
-
id< MQTTSessionManagerDelegate > delegate
Definition: MQTTSessionManager.h:46
+
NSMutableDictionary * subscriptions
Definition: MQTTSessionManager.h:51
+
id< MQTTSessionManagerDelegate > delegate
Definition: MQTTSessionManager.h:44
-
MQTTSessionManagerState state
Definition: MQTTSessionManager.h:57
+
MQTTSessionManagerState state
Definition: MQTTSessionManager.h:55
diff --git a/MQTTClient/dist/documentation/html/annotated.html b/MQTTClient/dist/documentation/html/annotated.html index e8317130..3f806eb0 100644 --- a/MQTTClient/dist/documentation/html/annotated.html +++ b/MQTTClient/dist/documentation/html/annotated.html @@ -98,7 +98,7 @@ diff --git a/MQTTClient/dist/documentation/html/class_m_q_t_t_session-members.html b/MQTTClient/dist/documentation/html/class_m_q_t_t_session-members.html index defaa519..de44065d 100644 --- a/MQTTClient/dist/documentation/html/class_m_q_t_t_session-members.html +++ b/MQTTClient/dist/documentation/html/class_m_q_t_t_session-members.html @@ -154,7 +154,7 @@ diff --git a/MQTTClient/dist/documentation/html/class_m_q_t_t_session_manager-members.html b/MQTTClient/dist/documentation/html/class_m_q_t_t_session_manager-members.html index a042a964..f52f3ece 100644 --- a/MQTTClient/dist/documentation/html/class_m_q_t_t_session_manager-members.html +++ b/MQTTClient/dist/documentation/html/class_m_q_t_t_session_manager-members.html @@ -98,12 +98,14 @@ - connectionError:error:<MQTTSessionDelegate>connectionRefused:error:<MQTTSessionDelegate>connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId:MQTTSessionManager - - connectTo:port:tls:keepalive:clean:auth:user:pass:willTopic:will:willQos:willRetainFlag:withClientId:MQTTSessionManager - - connectToLastMQTTSessionManager - delegateMQTTSessionManager - - disconnectMQTTSessionManager - - handleEvent:event:error:<MQTTSessionDelegate> - - ignoreReceived:type:qos:retained:duped:mid:data:<MQTTSessionDelegate> + - connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId:securityPolicy:certificates:MQTTSessionManager + - connectTo:port:tls:keepalive:clean:auth:user:pass:willTopic:will:willQos:willRetainFlag:withClientId:MQTTSessionManager + - connectToLastMQTTSessionManager + delegateMQTTSessionManager + - disconnectMQTTSessionManager + - handleEvent:event:error:<MQTTSessionDelegate> + - ignoreReceived:type:qos:retained:duped:mid:data:<MQTTSessionDelegate> + - initWithPersistence:maxWindowSize:maxMessages:maxSize:MQTTSessionManager lastErrorCodeMQTTSessionManagermessageDelivered:msgID:<MQTTSessionDelegate>newMessage:data:onTopic:qos:retained:mid:<MQTTSessionDelegate> @@ -120,7 +122,7 @@ diff --git a/MQTTClient/dist/documentation/html/classes.html b/MQTTClient/dist/documentation/html/classes.html index 5a3f95a1..af06fb9f 100644 --- a/MQTTClient/dist/documentation/html/classes.html +++ b/MQTTClient/dist/documentation/html/classes.html @@ -99,7 +99,7 @@ diff --git a/MQTTClient/dist/documentation/html/files.html b/MQTTClient/dist/documentation/html/files.html index 1ba462f9..cdbaf202 100644 --- a/MQTTClient/dist/documentation/html/files.html +++ b/MQTTClient/dist/documentation/html/files.html @@ -93,7 +93,7 @@ diff --git a/MQTTClient/dist/documentation/html/functions.html b/MQTTClient/dist/documentation/html/functions.html index e3080dbd..359af5fe 100644 --- a/MQTTClient/dist/documentation/html/functions.html +++ b/MQTTClient/dist/documentation/html/functions.html @@ -166,6 +166,9 @@

- c -

  • connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId: : MQTTSessionManager
  • +
  • connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId:securityPolicy:certificates: +: MQTTSessionManager +
  • connectTo:port:tls:keepalive:clean:auth:user:pass:willTopic:will:willQos:willRetainFlag:withClientId: : MQTTSessionManager
  • @@ -251,6 +254,9 @@

    - i -

    • initWithClientId:userName:password:runLoop:forMode: : MQTTSession
    • +
    • initWithPersistence:maxWindowSize:maxMessages:maxSize: +: MQTTSessionManager +
    @@ -432,7 +438,7 @@

    - w -

      diff --git a/MQTTClient/dist/documentation/html/functions_func.html b/MQTTClient/dist/documentation/html/functions_func.html index 93652050..d2b1bae4 100644 --- a/MQTTClient/dist/documentation/html/functions_func.html +++ b/MQTTClient/dist/documentation/html/functions_func.html @@ -148,6 +148,9 @@

      - c -

      • connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId: : MQTTSessionManager
      • +
      • connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId:securityPolicy:certificates: +: MQTTSessionManager +
      • connectTo:port:tls:keepalive:clean:auth:user:pass:willTopic:will:willQos:willRetainFlag:withClientId: : MQTTSessionManager
      • @@ -229,6 +232,9 @@

        - i -

        • initWithClientId:userName:password:runLoop:forMode: : MQTTSession
        • +
        • initWithPersistence:maxWindowSize:maxMessages:maxSize: +: MQTTSessionManager +
        @@ -344,7 +350,7 @@

        - u -

          diff --git a/MQTTClient/dist/documentation/html/functions_prop.html b/MQTTClient/dist/documentation/html/functions_prop.html index 07843822..0bd81276 100644 --- a/MQTTClient/dist/documentation/html/functions_prop.html +++ b/MQTTClient/dist/documentation/html/functions_prop.html @@ -168,7 +168,7 @@ diff --git a/MQTTClient/dist/documentation/html/hierarchy.html b/MQTTClient/dist/documentation/html/hierarchy.html index 3905179f..0fa82612 100644 --- a/MQTTClient/dist/documentation/html/hierarchy.html +++ b/MQTTClient/dist/documentation/html/hierarchy.html @@ -100,7 +100,7 @@ diff --git a/MQTTClient/dist/documentation/html/index.html b/MQTTClient/dist/documentation/html/index.html index 61ea416c..03c5f6d9 100644 --- a/MQTTClient/dist/documentation/html/index.html +++ b/MQTTClient/dist/documentation/html/index.html @@ -131,7 +131,7 @@

          Comparison MQTT Clients for iOS (incomplete)

          diff --git a/MQTTClient/dist/documentation/html/interface_m_q_t_t_session.html b/MQTTClient/dist/documentation/html/interface_m_q_t_t_session.html index 25e22059..72e36a63 100644 --- a/MQTTClient/dist/documentation/html/interface_m_q_t_t_session.html +++ b/MQTTClient/dist/documentation/html/interface_m_q_t_t_session.html @@ -287,8 +287,8 @@
          runLoop:[NSRunLoop currentRunLoop]
          forMode:NSRunLoopCommonModes
          - -
          certificates:myCerts];
          +
          securityPolicy:nil
          +
          certificates:myCerts];
          [self.session connectToHost:@"localhost" port:8884 usingSSL:YES];
          ...
          }
          @@ -1258,7 +1258,7 @@
          #import "MQTTClient.h"
          NSString* certificate = [[NSBundle bundleForClass:[MQTTSession class]] pathForResource:@"certificate" ofType:@"cer"];
          -
          MQTTSSLSecurityPolicy *securityPolicy = [MQTTSSLSecurityPolicy policyWithPinningMode:MQTTSSLPinningModeCertificate];
          +
          MQTTSSLSecurityPolicy *securityPolicy = [MQTTSSLSecurityPolicy policyWithPinningMode:MQTTSSLPinningModeCertificate];
          securityPolicy.pinnedCertificates = @[ [NSData dataWithContentsOfFile:certificate] ];
          securityPolicy.allowInvalidCertificates = YES; // if your certificate is self-signed(which didn't coupled with CA infrastructure)
          @@ -1277,7 +1277,7 @@
          runLoop:[NSRunLoop currentRunLoop]
          forMode:NSRunLoopCommonModes
          securityPolicy:securityPolicy
          - +
          certificates:certificates];
          [session connectToHost:@"example-1234" port:1883 usingSSL:YES];
          @@ -2711,7 +2711,7 @@

          Property Documentation

          diff --git a/MQTTClient/dist/documentation/html/interface_m_q_t_t_session_manager.html b/MQTTClient/dist/documentation/html/interface_m_q_t_t_session_manager.html index c92b4d17..2db62315 100644 --- a/MQTTClient/dist/documentation/html/interface_m_q_t_t_session_manager.html +++ b/MQTTClient/dist/documentation/html/interface_m_q_t_t_session_manager.html @@ -105,6 +105,10 @@ + + + + @@ -262,10 +266,139 @@

          Instance Methods

          (MQTTSessionManager *) - initWithPersistence:maxWindowSize:maxMessages:maxSize:
           
          (void) - connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId:securityPolicy:certificates:
           
          (void) - connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId:
           
          (void) - connectTo:port:tls:keepalive:clean:auth:user:pass:willTopic:will:willQos:willRetainFlag:withClientId:
          +

          Convenience alternative to full paramter connectTo

          Parameters
          + + + + + + + + + + + + + + + +
          hostsee connectTo description
          portsee connectTo description
          tlssee connectTo description
          keepalivesee connectTo description
          cleansee connectTo description
          authsee connectTo description
          usersee connectTo description
          passsee connectTo description
          willsee connectTo description
          willTopicsee connectTo description
          willMsgsee connectTo description
          willQossee connectTo description
          willRetainFlagsee connectTo description
          clientIdsee connectTo description
          +
          +
          + +
          + + +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          - (void) connectTo: (NSString *) host
          port:(NSInteger) port
          tls:(BOOL) tls
          keepalive:(NSInteger) keepalive
          clean:(BOOL) clean
          auth:(BOOL) auth
          user:(NSString *) user
          pass:(NSString *) pass
          will:(BOOL) will
          willTopic:(NSString *) willTopic
          willMsg:(NSData *) willMsg
          willQos:(MQTTQosLevel) willQos
          willRetainFlag:(BOOL) willRetainFlag
          withClientId:(NSString *) clientId
          securityPolicy:(MQTTSSLSecurityPolicy *) securityPolicy
          certificates:(NSArray *) certificates 
          +

          Connects to the MQTT broker and stores the parameters for subsequent reconnects

          Parameters
          - + @@ -273,15 +406,16 @@ - - + + + +
          hostspecifies the hostname or ip address to connect to. Defaults to "localhost".
          portspefies the port to connect to
          portspecifies the port to connect to
          tlsspecifies whether to use SSL or not
          keepaliveThe Keep Alive is a time interval measured in seconds. The MQTTClient ensures that the interval between Control Packets being sent does not exceed the Keep Alive value. In the absence of sending any other Control Packets, the Client sends a PINGREQ Packet.
          cleanspecifies if the server should discard previous session information.
          useran NSString object containing the user's name (or ID) for authentication. May be nil.
          passan NSString object containing the user's password. If userName is nil, password must be nil as well.
          willindicates whether a will shall be sent
          willTopicthe Will Topic is a string, must not be nil
          willMsgthe Will Message, might be zero length
          willTopicthe Will Topic is a string, may be nil
          willMsgthe Will Message, might be zero length or nil
          willQosspecifies the QoS level to be used when publishing the Will Message.
          willRetainFlagindicates if the server should publish the Will Messages with retainFlag.
          clientIdThe Client Identifier identifies the Client to the Server. If nil, a random clientId is generated.
          securityPolicyA custom SSL security policy or nil.
          certificatesAn NSArray of the pinned certificates to use or nil.
          -
          Returns
          the initialised MQTTSessionManager object
          @@ -374,25 +508,24 @@
          -

          Connects to the MQTT broker and stores the parameters for subsequent reconnects

          Parameters
          +

          Convenience alternative to full paramter connectTo

          Parameters
          - - - - - - - - + + + + + + + + - - - + + +
          hostspecifies the hostname or ip address to connect to. Defaults to "localhost".
          portspefies the port to connect to
          tlsspecifies whether to use SSL or not
          keepaliveThe Keep Alive is a time interval measured in seconds. The MQTTClient ensures that the interval between Control Packets being sent does not exceed the Keep Alive value. In the absence of sending any other Control Packets, the Client sends a PINGREQ Packet.
          cleanspecifies if the server should discard previous session information.
          authspecifies the user and pass parameters should be used for authenthication
          useran NSString object containing the user's name (or ID) for authentication. May be nil.
          passan NSString object containing the user's password. If userName is nil, password must be nil as well.
          hostsee connectTo description
          portsee connectTo description
          tlssee connectTo description
          keepalivesee connectTo description
          cleansee connectTo description
          authsee connectTo description
          usersee connectTo description
          passsee connectTo description
          willTopicthe Will Topic is a string, must not be nil
          willthe Will Message, might be zero length
          willQosspecifies the QoS level to be used when publishing the Will Message.
          willRetainFlagindicates if the server should publish the Will Messages with retainFlag.
          clientIdThe Client Identifier identifies the Client to the Server. If nil, a random clientId is generated.
          willQossee connectTo description
          willRetainFlagsee connectTo description
          clientIdsee connectTo description
          -
          Returns
          the initialised MQTTSessionManager object
          @@ -426,6 +559,54 @@

          Disconnects gracefully from the MQTT broker

          +
          + + +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          - (MQTTSessionManager *) initWithPersistence: (BOOL) persistent
          maxWindowSize:(NSUInteger) maxWindowSize
          maxMessages:(NSUInteger) maxMessages
          maxSize:(NSUInteger) maxSize 
          +
          +

          initWithPersistence sets the MQTTPersistence properties other than default

          Parameters
          + + + + + +
          persistentYES or NO (default) to establish file or in memory persistence.
          maxWindowSize(a positive number, default is 16) to control the number of messages sent before waiting for acknowledgement in Qos 1 or 2. Additional messages are stored and transmitted later.
          maxSize(a positive number of bytes, default is 64 MB) to limit the size of the persistence file. Messages published after the limit is reached are dropped.
          maxMessages(a positive number, default is 1024) to limit the number of messages stored. Additional messages published are dropped.
          +
          +
          +
          Returns
          the initialized MQTTSessionManager object
          +
          @@ -569,7 +750,7 @@

          Property Documentation

          diff --git a/MQTTClient/dist/documentation/html/protocol_m_q_t_t_session_delegate-p-members.html b/MQTTClient/dist/documentation/html/protocol_m_q_t_t_session_delegate-p-members.html index 314addaf..c1c0f3c2 100644 --- a/MQTTClient/dist/documentation/html/protocol_m_q_t_t_session_delegate-p-members.html +++ b/MQTTClient/dist/documentation/html/protocol_m_q_t_t_session_delegate-p-members.html @@ -111,7 +111,7 @@ diff --git a/MQTTClient/dist/documentation/html/protocol_m_q_t_t_session_delegate-p.html b/MQTTClient/dist/documentation/html/protocol_m_q_t_t_session_delegate-p.html index 9047c2dd..9f8622af 100644 --- a/MQTTClient/dist/documentation/html/protocol_m_q_t_t_session_delegate-p.html +++ b/MQTTClient/dist/documentation/html/protocol_m_q_t_t_session_delegate-p.html @@ -1043,7 +1043,7 @@ diff --git a/MQTTClient/dist/documentation/html/protocol_m_q_t_t_session_manager_delegate-p-members.html b/MQTTClient/dist/documentation/html/protocol_m_q_t_t_session_manager_delegate-p-members.html index 4c20792e..762a808e 100644 --- a/MQTTClient/dist/documentation/html/protocol_m_q_t_t_session_manager_delegate-p-members.html +++ b/MQTTClient/dist/documentation/html/protocol_m_q_t_t_session_manager_delegate-p-members.html @@ -94,7 +94,7 @@ diff --git a/MQTTClient/dist/documentation/html/protocol_m_q_t_t_session_manager_delegate-p.html b/MQTTClient/dist/documentation/html/protocol_m_q_t_t_session_manager_delegate-p.html index b9e80acc..8dcc5833 100644 --- a/MQTTClient/dist/documentation/html/protocol_m_q_t_t_session_manager_delegate-p.html +++ b/MQTTClient/dist/documentation/html/protocol_m_q_t_t_session_manager_delegate-p.html @@ -155,7 +155,7 @@ diff --git a/MQTTClient/dist/documentation/html/search/all_1.js b/MQTTClient/dist/documentation/html/search/all_1.js index 4008bcf1..b6500477 100644 --- a/MQTTClient/dist/documentation/html/search/all_1.js +++ b/MQTTClient/dist/documentation/html/search/all_1.js @@ -15,6 +15,7 @@ var searchData= ['connectionrefused_3aerror_3a',['connectionRefused:error:',['../protocol_m_q_t_t_session_delegate-p.html#a179c4f9104394b3843a20862d50fd813',1,'MQTTSessionDelegate-p']]], ['connectmessage',['connectMessage',['../interface_m_q_t_t_session.html#a44f63ba3383e0e5c5bed5e051cad9d2f',1,'MQTTSession']]], ['connectto_3aport_3atls_3akeepalive_3aclean_3aauth_3auser_3apass_3awill_3awilltopic_3awillmsg_3awillqos_3awillretainflag_3awithclientid_3a',['connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId:',['../interface_m_q_t_t_session_manager.html#af50a6c56e8d19ef1e739cccb9e11722a',1,'MQTTSessionManager']]], + ['connectto_3aport_3atls_3akeepalive_3aclean_3aauth_3auser_3apass_3awill_3awilltopic_3awillmsg_3awillqos_3awillretainflag_3awithclientid_3asecuritypolicy_3acertificates_3a',['connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId:securityPolicy:certificates:',['../interface_m_q_t_t_session_manager.html#a58a397cb2851b3bb5c3cf2a49c109204',1,'MQTTSessionManager']]], ['connectto_3aport_3atls_3akeepalive_3aclean_3aauth_3auser_3apass_3awilltopic_3awill_3awillqos_3awillretainflag_3awithclientid_3a',['connectTo:port:tls:keepalive:clean:auth:user:pass:willTopic:will:willQos:willRetainFlag:withClientId:',['../interface_m_q_t_t_session_manager.html#af0b3aa800e54438a160b1c1b78b27898',1,'MQTTSessionManager']]], ['connecttohost_3aport_3a',['connectToHost:port:',['../interface_m_q_t_t_session.html#abc2b0b1291a5da11028761e3a3ed097b',1,'MQTTSession']]], ['connecttohost_3aport_3ausingssl_3a',['connectToHost:port:usingSSL:',['../interface_m_q_t_t_session.html#a97c0fc3b9a06d8c5eefa3012591feb82',1,'MQTTSession']]], diff --git a/MQTTClient/dist/documentation/html/search/all_4.js b/MQTTClient/dist/documentation/html/search/all_4.js index 5b853c25..e44e73a5 100644 --- a/MQTTClient/dist/documentation/html/search/all_4.js +++ b/MQTTClient/dist/documentation/html/search/all_4.js @@ -13,5 +13,6 @@ var searchData= ['initwithclientid_3ausername_3apassword_3akeepalive_3acleansession_3awill_3awilltopic_3awillmsg_3awillqos_3awillretainflag_3aprotocollevel_3arunloop_3aformode_3asecuritypolicy_3acertificates_3a',['initWithClientId:userName:password:keepAlive:cleanSession:will:willTopic:willMsg:willQoS:willRetainFlag:protocolLevel:runLoop:forMode:securityPolicy:certificates:',['../interface_m_q_t_t_session.html#a8a4605e8dc395b784f686f5d96401ee8',1,'MQTTSession']]], ['initwithclientid_3ausername_3apassword_3akeepalive_3acleansession_3awilltopic_3awillmsg_3awillqos_3awillretainflag_3a',['initWithClientId:userName:password:keepAlive:cleanSession:willTopic:willMsg:willQoS:willRetainFlag:',['../interface_m_q_t_t_session.html#a7dc7dfa1a3fc8bc9be7b668f39b748d2',1,'MQTTSession']]], ['initwithclientid_3ausername_3apassword_3akeepalive_3acleansession_3awilltopic_3awillmsg_3awillqos_3awillretainflag_3arunloop_3aformode_3a',['initWithClientId:userName:password:keepAlive:cleanSession:willTopic:willMsg:willQoS:willRetainFlag:runLoop:forMode:',['../interface_m_q_t_t_session.html#aaf15fb90e0b68cc0e41ff4978d8b9d72',1,'MQTTSession']]], - ['initwithclientid_3ausername_3apassword_3arunloop_3aformode_3a',['initWithClientId:userName:password:runLoop:forMode:',['../interface_m_q_t_t_session.html#a52b198d36af634c4ecc9e5df460e2df6',1,'MQTTSession']]] + ['initwithclientid_3ausername_3apassword_3arunloop_3aformode_3a',['initWithClientId:userName:password:runLoop:forMode:',['../interface_m_q_t_t_session.html#a52b198d36af634c4ecc9e5df460e2df6',1,'MQTTSession']]], + ['initwithpersistence_3amaxwindowsize_3amaxmessages_3amaxsize_3a',['initWithPersistence:maxWindowSize:maxMessages:maxSize:',['../interface_m_q_t_t_session_manager.html#a99bcb6e9ae06072f890947a4f53d7dd2',1,'MQTTSessionManager']]] ]; diff --git a/MQTTClient/dist/documentation/html/search/functions_1.js b/MQTTClient/dist/documentation/html/search/functions_1.js index c7135eb7..b49e06f2 100644 --- a/MQTTClient/dist/documentation/html/search/functions_1.js +++ b/MQTTClient/dist/documentation/html/search/functions_1.js @@ -10,6 +10,7 @@ var searchData= ['connectionerror_3aerror_3a',['connectionError:error:',['../protocol_m_q_t_t_session_delegate-p.html#a8895314112168286947d78a102185ab2',1,'MQTTSessionDelegate-p']]], ['connectionrefused_3aerror_3a',['connectionRefused:error:',['../protocol_m_q_t_t_session_delegate-p.html#a179c4f9104394b3843a20862d50fd813',1,'MQTTSessionDelegate-p']]], ['connectto_3aport_3atls_3akeepalive_3aclean_3aauth_3auser_3apass_3awill_3awilltopic_3awillmsg_3awillqos_3awillretainflag_3awithclientid_3a',['connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId:',['../interface_m_q_t_t_session_manager.html#af50a6c56e8d19ef1e739cccb9e11722a',1,'MQTTSessionManager']]], + ['connectto_3aport_3atls_3akeepalive_3aclean_3aauth_3auser_3apass_3awill_3awilltopic_3awillmsg_3awillqos_3awillretainflag_3awithclientid_3asecuritypolicy_3acertificates_3a',['connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId:securityPolicy:certificates:',['../interface_m_q_t_t_session_manager.html#a58a397cb2851b3bb5c3cf2a49c109204',1,'MQTTSessionManager']]], ['connectto_3aport_3atls_3akeepalive_3aclean_3aauth_3auser_3apass_3awilltopic_3awill_3awillqos_3awillretainflag_3awithclientid_3a',['connectTo:port:tls:keepalive:clean:auth:user:pass:willTopic:will:willQos:willRetainFlag:withClientId:',['../interface_m_q_t_t_session_manager.html#af0b3aa800e54438a160b1c1b78b27898',1,'MQTTSessionManager']]], ['connecttohost_3aport_3a',['connectToHost:port:',['../interface_m_q_t_t_session.html#abc2b0b1291a5da11028761e3a3ed097b',1,'MQTTSession']]], ['connecttohost_3aport_3ausingssl_3a',['connectToHost:port:usingSSL:',['../interface_m_q_t_t_session.html#a97c0fc3b9a06d8c5eefa3012591feb82',1,'MQTTSession']]], diff --git a/MQTTClient/dist/documentation/html/search/functions_4.js b/MQTTClient/dist/documentation/html/search/functions_4.js index 5b853c25..e44e73a5 100644 --- a/MQTTClient/dist/documentation/html/search/functions_4.js +++ b/MQTTClient/dist/documentation/html/search/functions_4.js @@ -13,5 +13,6 @@ var searchData= ['initwithclientid_3ausername_3apassword_3akeepalive_3acleansession_3awill_3awilltopic_3awillmsg_3awillqos_3awillretainflag_3aprotocollevel_3arunloop_3aformode_3asecuritypolicy_3acertificates_3a',['initWithClientId:userName:password:keepAlive:cleanSession:will:willTopic:willMsg:willQoS:willRetainFlag:protocolLevel:runLoop:forMode:securityPolicy:certificates:',['../interface_m_q_t_t_session.html#a8a4605e8dc395b784f686f5d96401ee8',1,'MQTTSession']]], ['initwithclientid_3ausername_3apassword_3akeepalive_3acleansession_3awilltopic_3awillmsg_3awillqos_3awillretainflag_3a',['initWithClientId:userName:password:keepAlive:cleanSession:willTopic:willMsg:willQoS:willRetainFlag:',['../interface_m_q_t_t_session.html#a7dc7dfa1a3fc8bc9be7b668f39b748d2',1,'MQTTSession']]], ['initwithclientid_3ausername_3apassword_3akeepalive_3acleansession_3awilltopic_3awillmsg_3awillqos_3awillretainflag_3arunloop_3aformode_3a',['initWithClientId:userName:password:keepAlive:cleanSession:willTopic:willMsg:willQoS:willRetainFlag:runLoop:forMode:',['../interface_m_q_t_t_session.html#aaf15fb90e0b68cc0e41ff4978d8b9d72',1,'MQTTSession']]], - ['initwithclientid_3ausername_3apassword_3arunloop_3aformode_3a',['initWithClientId:userName:password:runLoop:forMode:',['../interface_m_q_t_t_session.html#a52b198d36af634c4ecc9e5df460e2df6',1,'MQTTSession']]] + ['initwithclientid_3ausername_3apassword_3arunloop_3aformode_3a',['initWithClientId:userName:password:runLoop:forMode:',['../interface_m_q_t_t_session.html#a52b198d36af634c4ecc9e5df460e2df6',1,'MQTTSession']]], + ['initwithpersistence_3amaxwindowsize_3amaxmessages_3amaxsize_3a',['initWithPersistence:maxWindowSize:maxMessages:maxSize:',['../interface_m_q_t_t_session_manager.html#a99bcb6e9ae06072f890947a4f53d7dd2',1,'MQTTSessionManager']]] ];