Skip to content

Commit a82b013

Browse files
committed
Add run loop parameter
1 parent 35150a8 commit a82b013

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

MQTTClient/MQTTClient/MQTTSessionManager.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ typedef NS_ENUM(int, MQTTSessionManagerState) {
211211
* @param securityPolicy A custom SSL security policy or nil.
212212
* @param certificates An NSArray of the pinned certificates to use or nil.
213213
* @param protocolLevel Protocol version of the connection.
214+
* @param runLoop Run loop for MQTTSession.
214215
*/
215216

216217
- (void)connectTo:(NSString *)host
@@ -229,7 +230,8 @@ typedef NS_ENUM(int, MQTTSessionManagerState) {
229230
withClientId:(NSString *)clientId
230231
securityPolicy:(MQTTSSLSecurityPolicy *)securityPolicy
231232
certificates:(NSArray *)certificates
232-
protocolLevel:(MQTTProtocolVersion)protocolLevel;
233+
protocolLevel:(MQTTProtocolVersion)protocolLevel
234+
runLoop:(NSRunLoop *)runLoop;
233235

234236

235237
/** Connects to the MQTT broker and stores the parameters for subsequent reconnects

MQTTClient/MQTTClient/MQTTSessionManager.m

+10-5
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ @interface MQTTSessionManager()
3636
@property (nonatomic) NSInteger willQos;
3737
@property (nonatomic) BOOL willRetainFlag;
3838
@property (strong, nonatomic) NSString *clientId;
39+
@property (strong, nonatomic) NSRunLoop *runLoop;
3940
@property (strong, nonatomic) MQTTSSLSecurityPolicy *securityPolicy;
4041
@property (strong, nonatomic) NSArray *certificates;
4142
@property (nonatomic) MQTTProtocolVersion protocolLevel;
@@ -223,7 +224,8 @@ - (void)connectTo:(NSString *)host
223224
withClientId:clientId
224225
securityPolicy:securityPolicy
225226
certificates:certificates
226-
protocolLevel:MQTTProtocolVersion311]; // use this level as default, keeps it backwards compatible
227+
protocolLevel:MQTTProtocolVersion311 // use this level as default, keeps it backwards compatible
228+
runLoop:[NSRunLoop currentRunLoop]];
227229
}
228230

229231
- (void)connectTo:(NSString *)host
@@ -242,7 +244,8 @@ - (void)connectTo:(NSString *)host
242244
withClientId:(NSString *)clientId
243245
securityPolicy:(MQTTSSLSecurityPolicy *)securityPolicy
244246
certificates:(NSArray *)certificates
245-
protocolLevel:(MQTTProtocolVersion)protocolLevel {
247+
protocolLevel:(MQTTProtocolVersion)protocolLevel
248+
runLoop:(NSRunLoop *)runLoop {
246249
DDLogVerbose(@"MQTTSessionManager connectTo:%@", host);
247250
BOOL shouldReconnect = self.session != nil;
248251
if (!self.session ||
@@ -260,7 +263,8 @@ - (void)connectTo:(NSString *)host
260263
willRetainFlag != self.willRetainFlag ||
261264
![clientId isEqualToString:self.clientId] ||
262265
securityPolicy != self.securityPolicy ||
263-
certificates != self.certificates) {
266+
certificates != self.certificates ||
267+
runLoop != self.runLoop) {
264268
self.host = host;
265269
self.port = (int)port;
266270
self.tls = tls;
@@ -278,7 +282,8 @@ - (void)connectTo:(NSString *)host
278282
self.securityPolicy = securityPolicy;
279283
self.certificates = certificates;
280284
self.protocolLevel = protocolLevel;
281-
285+
self.runLoop = runLoop;
286+
282287
self.session = [[MQTTSession alloc] initWithClientId:clientId
283288
userName:auth ? user : nil
284289
password:auth ? pass : nil
@@ -290,7 +295,7 @@ - (void)connectTo:(NSString *)host
290295
willQoS:willQos
291296
willRetainFlag:willRetainFlag
292297
protocolLevel:protocolLevel
293-
runLoop:[NSRunLoop currentRunLoop]
298+
runLoop:runLoop
294299
forMode:NSDefaultRunLoopMode
295300
securityPolicy:securityPolicy
296301
certificates:certificates];

0 commit comments

Comments
 (0)