// // MQTTSessionLegacy.m // MQTTClient.framework // // Copyright © 2013-2017, Christoph Krey. All rights reserved. // // based on // // Copyright (c) 2011, 2013, 2lemetry LLC // // All rights reserved. This program and the accompanying materials // are made available under the terms of the Eclipse Public License v1.0 // which accompanies this distribution, and is available at // http://www.eclipse.org/legal/epl-v10.html // // Contributors: // Kyle Roche - initial API and implementation and/or initial documentation // /** Using MQTT in your Objective-C application This file contains implementation for mqttio-OBJC backward compatibility @author Christoph Krey c@ckrey.de @see http://mqtt.org */ #import "MQTTSession.h" #import "MQTTSessionLegacy.h" #import "MQTTCFSocketTransport.h" #import "MQTTSSLSecurityPolicyTransport.h" #import "MQTTLog.h" @interface MQTTSession() @property (strong, nonatomic) MQTTSSLSecurityPolicy *securityPolicy; @end @implementation MQTTSession(Legacy) - (MQTTSession *)initWithClientId:(NSString *)clientId userName:(NSString *)userName password:(NSString *)password keepAlive:(UInt16)keepAliveInterval connectMessage:(MQTTMessage *)theConnectMessage cleanSession:(BOOL)cleanSessionFlag will:(BOOL)willFlag willTopic:(NSString *)willTopic willMsg:(NSData *)willMsg willQoS:(MQTTQosLevel)willQoS willRetainFlag:(BOOL)willRetainFlag protocolLevel:(UInt8)protocolLevel queue:(dispatch_queue_t)queue securityPolicy:(MQTTSSLSecurityPolicy *)securityPolicy certificates:(NSArray *)certificates { DDLogVerbose(@"[MQTTSessionLegacy] initWithClientId:%@ ", clientId); self = [self init]; self.connectMessage = theConnectMessage; self.clientId = clientId; self.userName = userName; self.password = password; self.keepAliveInterval = keepAliveInterval; self.cleanSessionFlag = cleanSessionFlag; self.willFlag = willFlag; self.willTopic = willTopic; self.willMsg = willMsg; self.willQoS = willQoS; self.willRetainFlag = willRetainFlag; self.protocolLevel = protocolLevel; self.queue = queue; self.securityPolicy = securityPolicy; self.certificates = certificates; return self; } - (void)publishJson:(id)payload onTopic:(NSString*)theTopic { NSData *data = [NSJSONSerialization dataWithJSONObject:payload options:0 error:nil]; if (data) { [self publishData:data onTopic:theTopic retain:FALSE qos:MQTTQosLevelAtLeastOnce]; } } @end