MQTTSessionManager 初始化解釋

self.manager = [[MQTTSessionManager alloc] init];

? ? ? ? self.manager.delegate = self;

? ? ? ? self.manager.subscriptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:MQTTQosLevelExactlyOnce] forKey:[NSString stringWithFormat:@"%@/#", self.base]];

? ? ? ? [sessionManager connectTo:@“192.168.1.4” //服務(wù)器地址

? ? ? ? ? ? ? ? ? ? ? ? ? ? port:1883 //服務(wù)端端口號(hào)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? tls:false //是否使用tls協(xié)議,mosca是支持tls的,如果使用了要設(shè)置成true

? ? ? ? ? ? ? ? ? ? ? ? keepalive:60 //心跳時(shí)間,單位秒,每隔固定時(shí)間發(fā)送心跳包

? ? ? ? ? ? ? ? ? ? ? ? ? ? clean:false //session是否清除,這個(gè)需要注意,如果是false,代表保持登錄,如果客戶端離線了再次登錄就可以接收到離線消息。注意:QoS為1和QoS為2,并需訂閱和發(fā)送一致

? ? ? ? ? ? ? ? ? ? ? ? ? ? auth:true //是否使用登錄驗(yàn)證,和下面的user和pass參數(shù)組合使用

? ? ? ? ? ? ? ? ? ? ? ? ? ? user:_userName //用戶名

? ? ? ? ? ? ? ? ? ? ? ? ? ? pass:_passwd //密碼

? ? ? ? ? ? ? ? ? ? ? ? willTopic:@"" //下面四個(gè)參數(shù)用來(lái)設(shè)置如果客戶端異常離線發(fā)送的消息,當(dāng)前參數(shù)是哪個(gè)topic用來(lái)傳輸異常離線消息,這里的異常離線消息都指的是客戶端掉線后發(fā)送的掉線消息

? ? ? ? ? ? ? ? ? ? ? ? ? ? will:@"" //異常離線消息體。自定義的異常離線消息,約定好格式就可以了

? ? ? ? ? ? ? ? ? ? ? ? ? willQos:0 //接收離線消息的級(jí)別 0、1、2

? ? ? ? ? ? ? ? ? willRetainFlag:false //只有在為true時(shí),Will Qos和Will Retain才會(huì)被讀取,此時(shí)消息體payload中要出現(xiàn)Will Topic和Will Message具體內(nèi)容,否則,Will QoS和Will Retain值會(huì)被忽略掉

? ? ? ? ? ? ? ? ? ? withClientId:nil]; //客戶端id,需要特別指出的是這個(gè)id需要全局唯一,因?yàn)榉?wù)端是根據(jù)這個(gè)來(lái)區(qū)分不同的客戶端的,默認(rèn)情況下一個(gè)id登錄后,假如有另外的連接以這個(gè)id登錄,上一個(gè)連接會(huì)被踢下線


//訂閱和發(fā)送消息

//訂閱主題。NSDictionary類型,Object 為 QoS,key 為 Topic

self.manager.subscriptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:MQTTQosLevelExactlyOnce] forKey:_topic];

//發(fā)送消息,返回值msgid大于0代表發(fā)送成功。(注意:這里說(shuō)“發(fā)送成功”并不是指“成功發(fā)送給服務(wù)器”(無(wú)網(wǎng)絡(luò)情況下也可能會(huì)返回大于0))

//msgid:PUBLISH消息的消息標(biāo)識(shí)符。 如果qos為0,則為零。如果qos為1或2,則在消息丟棄時(shí)為零

UInt16 msgid = [sessionManager sendData:[msg dataUsingEncoding:NSUTF8StringEncoding] //要發(fā)送的消息體

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? topic:_topic //要往哪個(gè)topic發(fā)送消息

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? qos:MQTTQosLevelExactlyOnce //消息級(jí)別

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? retain:false];

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容