<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.12"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>MQTTClient: MQTTSessionManager Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/search.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">MQTTClient </div> <div id="projectbrief">an Objective-C Framework for MQTT</div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.12 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> $(function() { initMenu('',true,false,'search.php','Search'); $(document).ready(function() { init_search(); }); }); </script> <div id="main-nav"></div> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> </div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Instance Methods</a> | <a href="#properties">Properties</a> | <a href="interface_m_q_t_t_session_manager-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">MQTTSessionManager Class Reference</div> </div> </div><!--header--> <div class="contents"> <p><code>#import <<a class="el" href="_m_q_t_t_session_manager_8h_source.html">MQTTSessionManager.h</a>></code></p> <div class="dynheader"> Inheritance diagram for MQTTSessionManager:</div> <div class="dyncontent"> <div class="center"> <img src="interface_m_q_t_t_session_manager.png" usemap="#MQTTSessionManager_map" alt=""/> <map id="MQTTSessionManager_map" name="MQTTSessionManager_map"> </map> </div></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Instance Methods</h2></td></tr> <tr class="memitem:acae1db469b891501860bc1fbcfb5d7d7"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_m_q_t_t_session_manager.html">MQTTSessionManager</a> *) </td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_m_q_t_t_session_manager.html#acae1db469b891501860bc1fbcfb5d7d7">initWithPersistence:maxWindowSize:maxMessages:maxSize:connectInForeground:</a></td></tr> <tr class="separator:acae1db469b891501860bc1fbcfb5d7d7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a81d38d54b7a1e1feea69ac4e80a7ff51"><td class="memItemLeft" align="right" valign="top">(void) </td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_m_q_t_t_session_manager.html#a81d38d54b7a1e1feea69ac4e80a7ff51">connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId:securityPolicy:certificates:protocolLevel:</a></td></tr> <tr class="separator:a81d38d54b7a1e1feea69ac4e80a7ff51"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af3e7b52cf514bd47d5ec140dba16abf5"><td class="memItemLeft" align="right" valign="top">(void) </td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_m_q_t_t_session_manager.html#af3e7b52cf514bd47d5ec140dba16abf5">connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId:securityPolicy:certificates:</a></td></tr> <tr class="separator:af3e7b52cf514bd47d5ec140dba16abf5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1c0903acd31887dfa1e1d16039aa53ec"><td class="memItemLeft" align="right" valign="top">(void) </td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_m_q_t_t_session_manager.html#a1c0903acd31887dfa1e1d16039aa53ec">connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId:</a></td></tr> <tr class="separator:a1c0903acd31887dfa1e1d16039aa53ec"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4ebc8a89857aeae6377861c8fea310d2"><td class="memItemLeft" align="right" valign="top">(void) </td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_m_q_t_t_session_manager.html#a4ebc8a89857aeae6377861c8fea310d2">connectTo:port:tls:keepalive:clean:auth:user:pass:willTopic:will:willQos:willRetainFlag:withClientId:</a></td></tr> <tr class="separator:a4ebc8a89857aeae6377861c8fea310d2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6bd1e45c0504df0b0d2599f86f84f884"><td class="memItemLeft" align="right" valign="top">(void) </td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_m_q_t_t_session_manager.html#a6bd1e45c0504df0b0d2599f86f84f884">connectToLast</a></td></tr> <tr class="separator:a6bd1e45c0504df0b0d2599f86f84f884"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7755c32b246dcefc8ad6d50a51f2e616"><td class="memItemLeft" align="right" valign="top">(UInt16) </td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_m_q_t_t_session_manager.html#a7755c32b246dcefc8ad6d50a51f2e616">sendData:topic:qos:retain:</a></td></tr> <tr class="separator:a7755c32b246dcefc8ad6d50a51f2e616"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a71161804d040ca10e164578d7e7eb855"><td class="memItemLeft" align="right" valign="top">(void) </td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_m_q_t_t_session_manager.html#a71161804d040ca10e164578d7e7eb855">disconnect</a></td></tr> <tr class="separator:a71161804d040ca10e164578d7e7eb855"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a> Properties</h2></td></tr> <tr class="memitem:abc07e05f3c0593b0bd851e8d69255381"><td class="memItemLeft" align="right" valign="top">id< MQTTSessionManagerDelegate > </td><td class="memItemRight" valign="bottom"><a class="el" href="interface_m_q_t_t_session_manager.html#abc07e05f3c0593b0bd851e8d69255381">delegate</a></td></tr> <tr class="separator:abc07e05f3c0593b0bd851e8d69255381"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a58ff79b8f16b7172d6466dfe55927428"><td class="memItemLeft" align="right" valign="top">NSDictionary< NSString *, NSNumber * > * </td><td class="memItemRight" valign="bottom"><a class="el" href="interface_m_q_t_t_session_manager.html#a58ff79b8f16b7172d6466dfe55927428">subscriptions</a></td></tr> <tr class="separator:a58ff79b8f16b7172d6466dfe55927428"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2c6507254d370d9f860b299608b37280"><td class="memItemLeft" align="right" valign="top">NSDictionary< NSString *, NSNumber * > * </td><td class="memItemRight" valign="bottom"><a class="el" href="interface_m_q_t_t_session_manager.html#a2c6507254d370d9f860b299608b37280">effectiveSubscriptions</a></td></tr> <tr class="separator:a2c6507254d370d9f860b299608b37280"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4caf1f5fe21b8d36700d97b68b3bf978"><td class="memItemLeft" align="right" valign="top">MQTTSessionManagerState </td><td class="memItemRight" valign="bottom"><a class="el" href="interface_m_q_t_t_session_manager.html#a4caf1f5fe21b8d36700d97b68b3bf978">state</a></td></tr> <tr class="separator:a4caf1f5fe21b8d36700d97b68b3bf978"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa2522a9c3be18812cea22cf2f6a40754"><td class="memItemLeft" align="right" valign="top">NSError * </td><td class="memItemRight" valign="bottom"><a class="el" href="interface_m_q_t_t_session_manager.html#aa2522a9c3be18812cea22cf2f6a40754">lastErrorCode</a></td></tr> <tr class="separator:aa2522a9c3be18812cea22cf2f6a40754"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>SessionManager handles the MQTT session for your application </p> </div><h2 class="groupheader">Method Documentation</h2> <a id="a1c0903acd31887dfa1e1d16039aa53ec"></a> <h2 class="memtitle"><span class="permalink"><a href="#a1c0903acd31887dfa1e1d16039aa53ec">§ </a></span>connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId:()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">- (void) connectTo: </td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>host</em></td> </tr> <tr> <td class="paramkey">port:</td> <td></td> <td class="paramtype">(NSInteger) </td> <td class="paramname"><em>port</em></td> </tr> <tr> <td class="paramkey">tls:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>tls</em></td> </tr> <tr> <td class="paramkey">keepalive:</td> <td></td> <td class="paramtype">(NSInteger) </td> <td class="paramname"><em>keepalive</em></td> </tr> <tr> <td class="paramkey">clean:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>clean</em></td> </tr> <tr> <td class="paramkey">auth:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>auth</em></td> </tr> <tr> <td class="paramkey">user:</td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>user</em></td> </tr> <tr> <td class="paramkey">pass:</td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>pass</em></td> </tr> <tr> <td class="paramkey">will:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>will</em></td> </tr> <tr> <td class="paramkey">willTopic:</td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>willTopic</em></td> </tr> <tr> <td class="paramkey">willMsg:</td> <td></td> <td class="paramtype">(NSData *) </td> <td class="paramname"><em>willMsg</em></td> </tr> <tr> <td class="paramkey">willQos:</td> <td></td> <td class="paramtype">(MQTTQosLevel) </td> <td class="paramname"><em>willQos</em></td> </tr> <tr> <td class="paramkey">willRetainFlag:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>willRetainFlag</em></td> </tr> <tr> <td class="paramkey">withClientId:</td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>clientId</em> </td> </tr> <tr> <td></td> <td></td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Convenience alternative to full paramter connectTo </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">host</td><td>see connectTo description </td></tr> <tr><td class="paramname">port</td><td>see connectTo description </td></tr> <tr><td class="paramname">tls</td><td>see connectTo description </td></tr> <tr><td class="paramname">keepalive</td><td>see connectTo description </td></tr> <tr><td class="paramname">clean</td><td>see connectTo description </td></tr> <tr><td class="paramname">auth</td><td>see connectTo description </td></tr> <tr><td class="paramname">user</td><td>see connectTo description </td></tr> <tr><td class="paramname">pass</td><td>see connectTo description </td></tr> <tr><td class="paramname">will</td><td>see connectTo description </td></tr> <tr><td class="paramname">willTopic</td><td>see connectTo description </td></tr> <tr><td class="paramname">willMsg</td><td>see connectTo description </td></tr> <tr><td class="paramname">willQos</td><td>see connectTo description </td></tr> <tr><td class="paramname">willRetainFlag</td><td>see connectTo description </td></tr> <tr><td class="paramname">clientId</td><td>see connectTo description </td></tr> </table> </dd> </dl> </div> </div> <a id="af3e7b52cf514bd47d5ec140dba16abf5"></a> <h2 class="memtitle"><span class="permalink"><a href="#af3e7b52cf514bd47d5ec140dba16abf5">§ </a></span>connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId:securityPolicy:certificates:()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">- (void) connectTo: </td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>host</em></td> </tr> <tr> <td class="paramkey">port:</td> <td></td> <td class="paramtype">(NSInteger) </td> <td class="paramname"><em>port</em></td> </tr> <tr> <td class="paramkey">tls:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>tls</em></td> </tr> <tr> <td class="paramkey">keepalive:</td> <td></td> <td class="paramtype">(NSInteger) </td> <td class="paramname"><em>keepalive</em></td> </tr> <tr> <td class="paramkey">clean:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>clean</em></td> </tr> <tr> <td class="paramkey">auth:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>auth</em></td> </tr> <tr> <td class="paramkey">user:</td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>user</em></td> </tr> <tr> <td class="paramkey">pass:</td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>pass</em></td> </tr> <tr> <td class="paramkey">will:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>will</em></td> </tr> <tr> <td class="paramkey">willTopic:</td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>willTopic</em></td> </tr> <tr> <td class="paramkey">willMsg:</td> <td></td> <td class="paramtype">(NSData *) </td> <td class="paramname"><em>willMsg</em></td> </tr> <tr> <td class="paramkey">willQos:</td> <td></td> <td class="paramtype">(MQTTQosLevel) </td> <td class="paramname"><em>willQos</em></td> </tr> <tr> <td class="paramkey">willRetainFlag:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>willRetainFlag</em></td> </tr> <tr> <td class="paramkey">withClientId:</td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>clientId</em></td> </tr> <tr> <td class="paramkey">securityPolicy:</td> <td></td> <td class="paramtype">(<a class="el" href="interface_m_q_t_t_s_s_l_security_policy.html">MQTTSSLSecurityPolicy</a> *) </td> <td class="paramname"><em>securityPolicy</em></td> </tr> <tr> <td class="paramkey">certificates:</td> <td></td> <td class="paramtype">(NSArray *) </td> <td class="paramname"><em>certificates</em> </td> </tr> <tr> <td></td> <td></td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Connects to the MQTT broker and stores the parameters for subsequent reconnects </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">host</td><td>specifies the hostname or ip address to connect to. Defaults to "localhost". </td></tr> <tr><td class="paramname">port</td><td>specifies the port to connect to </td></tr> <tr><td class="paramname">tls</td><td>specifies whether to use SSL or not </td></tr> <tr><td class="paramname">keepalive</td><td>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. </td></tr> <tr><td class="paramname">clean</td><td>specifies if the server should discard previous session information. </td></tr> <tr><td class="paramname">auth</td><td>specifies the user and pass parameters should be used for authenthication </td></tr> <tr><td class="paramname">user</td><td>an NSString object containing the user's name (or ID) for authentication. May be nil. </td></tr> <tr><td class="paramname">pass</td><td>an NSString object containing the user's password. If userName is nil, password must be nil as well. </td></tr> <tr><td class="paramname">will</td><td>indicates whether a will shall be sent </td></tr> <tr><td class="paramname">willTopic</td><td>the Will Topic is a string, may be nil </td></tr> <tr><td class="paramname">willMsg</td><td>the Will Message, might be zero length or nil </td></tr> <tr><td class="paramname">willQos</td><td>specifies the QoS level to be used when publishing the Will Message. </td></tr> <tr><td class="paramname">willRetainFlag</td><td>indicates if the server should publish the Will Messages with retainFlag. </td></tr> <tr><td class="paramname">clientId</td><td>The Client Identifier identifies the Client to the Server. If nil, a random clientId is generated. </td></tr> <tr><td class="paramname">securityPolicy</td><td>A custom SSL security policy or nil. </td></tr> <tr><td class="paramname">certificates</td><td>An NSArray of the pinned certificates to use or nil. </td></tr> </table> </dd> </dl> </div> </div> <a id="a81d38d54b7a1e1feea69ac4e80a7ff51"></a> <h2 class="memtitle"><span class="permalink"><a href="#a81d38d54b7a1e1feea69ac4e80a7ff51">§ </a></span>connectTo:port:tls:keepalive:clean:auth:user:pass:will:willTopic:willMsg:willQos:willRetainFlag:withClientId:securityPolicy:certificates:protocolLevel:()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">- (void) connectTo: </td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>host</em></td> </tr> <tr> <td class="paramkey">port:</td> <td></td> <td class="paramtype">(NSInteger) </td> <td class="paramname"><em>port</em></td> </tr> <tr> <td class="paramkey">tls:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>tls</em></td> </tr> <tr> <td class="paramkey">keepalive:</td> <td></td> <td class="paramtype">(NSInteger) </td> <td class="paramname"><em>keepalive</em></td> </tr> <tr> <td class="paramkey">clean:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>clean</em></td> </tr> <tr> <td class="paramkey">auth:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>auth</em></td> </tr> <tr> <td class="paramkey">user:</td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>user</em></td> </tr> <tr> <td class="paramkey">pass:</td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>pass</em></td> </tr> <tr> <td class="paramkey">will:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>will</em></td> </tr> <tr> <td class="paramkey">willTopic:</td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>willTopic</em></td> </tr> <tr> <td class="paramkey">willMsg:</td> <td></td> <td class="paramtype">(NSData *) </td> <td class="paramname"><em>willMsg</em></td> </tr> <tr> <td class="paramkey">willQos:</td> <td></td> <td class="paramtype">(MQTTQosLevel) </td> <td class="paramname"><em>willQos</em></td> </tr> <tr> <td class="paramkey">willRetainFlag:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>willRetainFlag</em></td> </tr> <tr> <td class="paramkey">withClientId:</td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>clientId</em></td> </tr> <tr> <td class="paramkey">securityPolicy:</td> <td></td> <td class="paramtype">(<a class="el" href="interface_m_q_t_t_s_s_l_security_policy.html">MQTTSSLSecurityPolicy</a> *) </td> <td class="paramname"><em>securityPolicy</em></td> </tr> <tr> <td class="paramkey">certificates:</td> <td></td> <td class="paramtype">(NSArray *) </td> <td class="paramname"><em>certificates</em></td> </tr> <tr> <td class="paramkey">protocolLevel:</td> <td></td> <td class="paramtype">(MQTTProtocolVersion) </td> <td class="paramname"><em>protocolLevel</em> </td> </tr> <tr> <td></td> <td></td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Connects to the MQTT broker and stores the parameters for subsequent reconnects </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">host</td><td>specifies the hostname or ip address to connect to. Defaults to "localhost". </td></tr> <tr><td class="paramname">port</td><td>specifies the port to connect to </td></tr> <tr><td class="paramname">tls</td><td>specifies whether to use SSL or not </td></tr> <tr><td class="paramname">keepalive</td><td>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. </td></tr> <tr><td class="paramname">clean</td><td>specifies if the server should discard previous session information. </td></tr> <tr><td class="paramname">auth</td><td>specifies the user and pass parameters should be used for authenthication </td></tr> <tr><td class="paramname">user</td><td>an NSString object containing the user's name (or ID) for authentication. May be nil. </td></tr> <tr><td class="paramname">pass</td><td>an NSString object containing the user's password. If userName is nil, password must be nil as well. </td></tr> <tr><td class="paramname">will</td><td>indicates whether a will shall be sent </td></tr> <tr><td class="paramname">willTopic</td><td>the Will Topic is a string, may be nil </td></tr> <tr><td class="paramname">willMsg</td><td>the Will Message, might be zero length or nil </td></tr> <tr><td class="paramname">willQos</td><td>specifies the QoS level to be used when publishing the Will Message. </td></tr> <tr><td class="paramname">willRetainFlag</td><td>indicates if the server should publish the Will Messages with retainFlag. </td></tr> <tr><td class="paramname">clientId</td><td>The Client Identifier identifies the Client to the Server. If nil, a random clientId is generated. </td></tr> <tr><td class="paramname">securityPolicy</td><td>A custom SSL security policy or nil. </td></tr> <tr><td class="paramname">certificates</td><td>An NSArray of the pinned certificates to use or nil. </td></tr> <tr><td class="paramname">protocolLevel</td><td>Protocol version of the connection. </td></tr> </table> </dd> </dl> </div> </div> <a id="a4ebc8a89857aeae6377861c8fea310d2"></a> <h2 class="memtitle"><span class="permalink"><a href="#a4ebc8a89857aeae6377861c8fea310d2">§ </a></span>connectTo:port:tls:keepalive:clean:auth:user:pass:willTopic:will:willQos:willRetainFlag:withClientId:()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">- (void) connectTo: </td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>host</em></td> </tr> <tr> <td class="paramkey">port:</td> <td></td> <td class="paramtype">(NSInteger) </td> <td class="paramname"><em>port</em></td> </tr> <tr> <td class="paramkey">tls:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>tls</em></td> </tr> <tr> <td class="paramkey">keepalive:</td> <td></td> <td class="paramtype">(NSInteger) </td> <td class="paramname"><em>keepalive</em></td> </tr> <tr> <td class="paramkey">clean:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>clean</em></td> </tr> <tr> <td class="paramkey">auth:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>auth</em></td> </tr> <tr> <td class="paramkey">user:</td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>user</em></td> </tr> <tr> <td class="paramkey">pass:</td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>pass</em></td> </tr> <tr> <td class="paramkey">willTopic:</td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>willTopic</em></td> </tr> <tr> <td class="paramkey">will:</td> <td></td> <td class="paramtype">(NSData *) </td> <td class="paramname"><em>will</em></td> </tr> <tr> <td class="paramkey">willQos:</td> <td></td> <td class="paramtype">(MQTTQosLevel) </td> <td class="paramname"><em>willQos</em></td> </tr> <tr> <td class="paramkey">willRetainFlag:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>willRetainFlag</em></td> </tr> <tr> <td class="paramkey">withClientId:</td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>clientId</em> </td> </tr> <tr> <td></td> <td></td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Convenience alternative to full paramter connectTo </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">host</td><td>see connectTo description </td></tr> <tr><td class="paramname">port</td><td>see connectTo description </td></tr> <tr><td class="paramname">tls</td><td>see connectTo description </td></tr> <tr><td class="paramname">keepalive</td><td>see connectTo description </td></tr> <tr><td class="paramname">clean</td><td>see connectTo description </td></tr> <tr><td class="paramname">auth</td><td>see connectTo description </td></tr> <tr><td class="paramname">user</td><td>see connectTo description </td></tr> <tr><td class="paramname">pass</td><td>see connectTo description </td></tr> <tr><td class="paramname">willTopic</td><td>the Will Topic is a string, must not be nil </td></tr> <tr><td class="paramname">will</td><td>the Will Message, might be zero length </td></tr> <tr><td class="paramname">willQos</td><td>see connectTo description </td></tr> <tr><td class="paramname">willRetainFlag</td><td>see connectTo description </td></tr> <tr><td class="paramname">clientId</td><td>see connectTo description </td></tr> </table> </dd> </dl> </div> </div> <a id="a6bd1e45c0504df0b0d2599f86f84f884"></a> <h2 class="memtitle"><span class="permalink"><a href="#a6bd1e45c0504df0b0d2599f86f84f884">§ </a></span>connectToLast()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">- (void) connectToLast </td> <td></td> <td class="paramname"></td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Re-Connects to the MQTT broker using the parameters for given in the connectTo method </p> </div> </div> <a id="a71161804d040ca10e164578d7e7eb855"></a> <h2 class="memtitle"><span class="permalink"><a href="#a71161804d040ca10e164578d7e7eb855">§ </a></span>disconnect()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">- (void) disconnect </td> <td></td> <td class="paramname"></td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Disconnects gracefully from the MQTT broker </p> </div> </div> <a id="acae1db469b891501860bc1fbcfb5d7d7"></a> <h2 class="memtitle"><span class="permalink"><a href="#acae1db469b891501860bc1fbcfb5d7d7">§ </a></span>initWithPersistence:maxWindowSize:maxMessages:maxSize:connectInForeground:()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">- (<a class="el" href="interface_m_q_t_t_session_manager.html">MQTTSessionManager</a> *) initWithPersistence: </td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>persistent</em></td> </tr> <tr> <td class="paramkey">maxWindowSize:</td> <td></td> <td class="paramtype">(NSUInteger) </td> <td class="paramname"><em>maxWindowSize</em></td> </tr> <tr> <td class="paramkey">maxMessages:</td> <td></td> <td class="paramtype">(NSUInteger) </td> <td class="paramname"><em>maxMessages</em></td> </tr> <tr> <td class="paramkey">maxSize:</td> <td></td> <td class="paramtype">(NSUInteger) </td> <td class="paramname"><em>maxSize</em></td> </tr> <tr> <td class="paramkey">connectInForeground:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>connectInForeground</em> </td> </tr> <tr> <td></td> <td></td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>initWithPersistence sets the <a class="el" href="protocol_m_q_t_t_persistence-p.html">MQTTPersistence</a> properties other than default </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">persistent</td><td>YES or NO (default) to establish file or in memory persistence. </td></tr> <tr><td class="paramname">maxWindowSize</td><td>(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. </td></tr> <tr><td class="paramname">maxSize</td><td>(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. </td></tr> <tr><td class="paramname">maxMessages</td><td>(a positive number, default is 1024) to limit the number of messages stored. Additional messages published are dropped. </td></tr> <tr><td class="paramname">connectInForeground</td><td>Whether or not to connect the <a class="el" href="interface_m_q_t_t_session.html">MQTTSession</a> when the app enters the foreground, and disconnect when it becomes inactive. When NO, the caller is responsible for calling -connectTo: and -disconnect. Defaults to YES. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the initialized <a class="el" href="interface_m_q_t_t_session_manager.html">MQTTSessionManager</a> object </dd></dl> </div> </div> <a id="a7755c32b246dcefc8ad6d50a51f2e616"></a> <h2 class="memtitle"><span class="permalink"><a href="#a7755c32b246dcefc8ad6d50a51f2e616">§ </a></span>sendData:topic:qos:retain:()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">- (UInt16) sendData: </td> <td></td> <td class="paramtype">(NSData *) </td> <td class="paramname"><em>data</em></td> </tr> <tr> <td class="paramkey">topic:</td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>topic</em></td> </tr> <tr> <td class="paramkey">qos:</td> <td></td> <td class="paramtype">(MQTTQosLevel) </td> <td class="paramname"><em>qos</em></td> </tr> <tr> <td class="paramkey">retain:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>retainFlag</em> </td> </tr> <tr> <td></td> <td></td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>publishes data on a given topic at a specified QoS level and retain flag</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">data</td><td>the data to be sent. length may range from 0 to 268,435,455 - 4 - <em>lengthof-topic</em> bytes. Defaults to length 0. </td></tr> <tr><td class="paramname">topic</td><td>the Topic to identify the data </td></tr> <tr><td class="paramname">retainFlag</td><td>if YES, data is stored on the MQTT broker until overwritten by the next publish with retainFlag = YES </td></tr> <tr><td class="paramname">qos</td><td>specifies the Quality of Service for the publish qos can be 0, 1, or 2. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the Message Identifier of the PUBLISH message. Zero if qos 0. If qos 1 or 2, zero if message was dropped </dd></dl> <dl class="section note"><dt>Note</dt><dd>returns immediately. </dd></dl> </div> </div> <h2 class="groupheader">Property Documentation</h2> <a id="abc07e05f3c0593b0bd851e8d69255381"></a> <h2 class="memtitle"><span class="permalink"><a href="#abc07e05f3c0593b0bd851e8d69255381">§ </a></span>delegate</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">- (id<MQTTSessionManagerDelegate>) delegate</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">weak</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>the delegate receiving incoming messages </p> </div> </div> <a id="a2c6507254d370d9f860b299608b37280"></a> <h2 class="memtitle"><span class="permalink"><a href="#a2c6507254d370d9f860b299608b37280">§ </a></span>effectiveSubscriptions</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">- (NSDictionary<NSString *, NSNumber *>*) effectiveSubscriptions</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">strong</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>effectiveSubscriptions s a dictionary of NSNumber instances indicating the granted MQTTQoSLevel, or 0x80 for subscription failure. The keys are topic filters. effectiveSubscriptions is observable and is updated everytime subscriptions change </p><div class="fragment"><div class="line"> ...</div><div class="line"> <a class="code" href="interface_m_q_t_t_session_manager.html">MQTTSessionManager</a> *manager = [[<a class="code" href="interface_m_q_t_t_session_manager.html">MQTTSessionManager</a> alloc] init];</div><div class="line"> manager.<a class="code" href="interface_m_q_t_t_session_manager.html#abc07e05f3c0593b0bd851e8d69255381">delegate</a> = <span class="keyword">self</span>;</div><div class="line"></div><div class="line"> [manager addObserver:<span class="keyword">self</span></div><div class="line"> forKeyPath:<span class="stringliteral">@"effectiveSubscriptions"</span></div><div class="line"> options:NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew</div><div class="line"> context:nil];</div><div class="line"> manager.<a class="code" href="interface_m_q_t_t_session_manager.html#a58ff79b8f16b7172d6466dfe55927428">subscriptions</a> = [@{<span class="stringliteral">@"#"</span>: @(0)} mutableCopy];</div><div class="line"> [manager connectTo: ...</div><div class="line"> ...</div><div class="line"> [manager removeObserver:<span class="keyword">self</span> forKeyPath:<span class="stringliteral">@"effectiveSubscriptions"</span>];</div><div class="line"> ...</div><div class="line"></div><div class="line">- (void)observeValueForKeyPath:(NSString *)keyPath</div><div class="line"> ofObject:(id)<span class="keywordtype">object</span></div><div class="line"> change:(NSDictionary<NSString *,id> *)change</div><div class="line"> context:(<span class="keywordtype">void</span> *)context {</div><div class="line"> <span class="keywordflow">if</span> ([keyPath isEqualToString:<span class="stringliteral">@"effectiveSubscriptions"</span>]) {</div><div class="line"> <a class="code" href="interface_m_q_t_t_session_manager.html">MQTTSessionManager</a> *manager = (<a class="code" href="interface_m_q_t_t_session_manager.html">MQTTSessionManager</a> *)<span class="keywordtype">object</span>;</div><div class="line"> DDLogVerbose(<span class="stringliteral">@"effectiveSubscriptions changed: %@"</span>, manager.<a class="code" href="interface_m_q_t_t_session_manager.html#a2c6507254d370d9f860b299608b37280">effectiveSubscriptions</a>);</div><div class="line"> }</div><div class="line">}</div></div><!-- fragment --> </div> </div> <a id="aa2522a9c3be18812cea22cf2f6a40754"></a> <h2 class="memtitle"><span class="permalink"><a href="#aa2522a9c3be18812cea22cf2f6a40754">§ </a></span>lastErrorCode</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">- (NSError*) lastErrorCode</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>SessionManager last error code when state equals MQTTSessionManagerStateError </p> </div> </div> <a id="a4caf1f5fe21b8d36700d97b68b3bf978"></a> <h2 class="memtitle"><span class="permalink"><a href="#a4caf1f5fe21b8d36700d97b68b3bf978">§ </a></span>state</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">- (MQTTSessionManagerState) state</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>SessionManager status </p> </div> </div> <a id="a58ff79b8f16b7172d6466dfe55927428"></a> <h2 class="memtitle"><span class="permalink"><a href="#a58ff79b8f16b7172d6466dfe55927428">§ </a></span>subscriptions</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">- (NSDictionary<NSString *, NSNumber *>*) subscriptions</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">strong</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>subscriptions is a dictionary of NSNumber instances indicating the MQTTQoSLevel. The keys are topic filters. The SessionManager subscribes to the given subscriptions after successfull (re-)connect according to the cleansession parameter and the state of the session as indicated by the broker. Setting a new subscriptions dictionary initiates SUBSCRIBE or UNSUBSCRIBE messages by SessionManager by comparing the old and new subscriptions. </p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="_m_q_t_t_session_manager_8h_source.html">MQTTSessionManager.h</a></li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Fri Dec 23 2016 14:30:45 for MQTTClient by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.12 </small></address> </body> </html>