XMPP之連接拣技,登陸千诬,注銷,注冊等

說明:在做以下連接膏斤,登陸徐绑,注銷,注冊等操作之前掸绞,建議把XMPPStream對象寫成一個單例對象泵三,整個程序運行過程中進行隨時調(diào)用

1,socket 連接

  • 1.1, 創(chuàng)建連接衔掸,設(shè)置連接條件烫幕,并進行連接
//首先需要創(chuàng)建XMPPStream對象,在實際操作中建議把這個對象寫成單例敞映,方便后期的其他操作
//因為任何有關(guān)xmpp的操作都是在XMPPStream的基礎(chǔ)上執(zhí)行的
//1,初始化
_xmppStream = [[XMPPStream alloc] init];

//2较曼,設(shè)置用戶名和域名等(密碼需要再連接建立之后再進行二次發(fā)送)
NSString *account = [[NSUserDefaults standardUserDefaults] objectForKey:@"account"];
self.xmppStream.myJID = [XMPPJID jidWithUser:account domain:@"localhost" resource:@"Apple Device"];
self.xmppStream.hostName = @"192.168.0.2";//192.168.0.2
self.xmppStream.hostPort = 5222;//這個端口號在不設(shè)置hostName情況下貌似不設(shè)置或者設(shè)置成其他的好像也不會報錯

//3,進行連接
[_xmppStream connectWithTimeout:5 error:&error];
if (error) {
    NSLog(@"連接失敗振愿,失敗原因:%@",error);
}

  • 1.2, 監(jiān)聽結(jié)果進行監(jiān)聽捷犹,默認(rèn)是遵守<XMPPStreamDelegate>協(xié)議的,所以可以直接敲出方法
//連接成功
- (void)xmppStreamDidConnect:(XMPPStream *)sender{
    NSLog(@"---連接成功冕末,可以進行下一步密碼驗證---");
}

//連接斷開或者未連接上(主動斷開連接或者網(wǎng)絡(luò)錯誤斷開連接等)
- (void)xmppStreamDidDisconnect:(XMPPStream *)sender withError:(NSError *)error{
    NSLog(@"-------斷開連接或者連接失敗---%@",error);
}

2萍歉,進行密碼驗證后登陸(此步驟建立在連接上基礎(chǔ)上)

  • 2.1, 連接上之后可以發(fā)送密碼進行授權(quán)登陸
[_xmppStream authenticateWithPassword:pwd error:&error];
  • 2.2, 用代理方法進行監(jiān)聽授權(quán)情況:在接收到通知的時候需要把登陸狀態(tài)發(fā)送給服務(wù)器
//密碼驗證正確
- (void)xmppStreamDidAuthenticate:(XMPPStream *)sender{
    NSLog(@"驗證過程順利档桃,且密碼正確枪孩,可以進行頁面跳轉(zhuǎn),并發(fā)送在線狀態(tài)更改信息藻肄!");
    //密碼驗證之后就可以進行發(fā)送在線狀態(tài)更改情況蔑舞,這一步是可以更改你的在線狀態(tài)
    XMPPPresence *online = [XMPPPresence presence];
    [_xmppStream sendElement:online];
}

//密碼錯誤
- (void)xmppStream:(XMPPStream *)sender didNotAuthenticate:(DDXMLElement *)error{
      //因為默認(rèn)離線,所以這里狀態(tài)不必發(fā)送
}

3嘹屯,登陸之后進行注銷操作

  • 3.1,注銷操作:
[_xmppStream disconnect];

*3.2,注銷的結(jié)果監(jiān)聽方法:如果注銷成功攻询,調(diào)用的是上面斷開連接方法

//連接斷開或者未連接上(主動斷開連接或者網(wǎng)絡(luò)錯誤斷開連接等)
- (void)xmppStreamDidDisconnect:(XMPPStream *)sender withError:(NSError *)error{
    NSLog(@"-------斷開連接或者連接失敗---%@",error);
    if(!error){//如果沒有錯誤,說明是主動調(diào)用斷開連接方法斷開了連接
        //主動斷開連接后需要發(fā)送離線狀態(tài)更改請求
        XMPPPresence *offline = [XMPPPresence presenceWithType:@"unavailable"];
        [_xmppStream sendElement:offline];
    }
}

***4州弟, 注冊操作(這一步同登陸一樣钧栖,是在連接成功的基礎(chǔ)上進行的)

  • 4.1, 注冊
[_xmppStream registerWithPassword:pwd error:&error];
  • 4.2, 注冊結(jié)果監(jiān)聽方法
//注冊成功
-(void)xmppStreamDidRegister:(XMPPStream *)sender{
    NSLog(@"注冊成功婆翔!");
}
//注冊失敗
- (void)xmppStream:(XMPPStream *)sender didNotRegister:(DDXMLElement *)error{
    NSLog(@"注冊失敗");
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末桐经,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子浙滤,更是在濱河造成了極大的恐慌,老刑警劉巖气堕,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纺腊,死亡現(xiàn)場離奇詭異畔咧,居然都是意外死亡,警方通過查閱死者的電腦和手機揖膜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門誓沸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人壹粟,你說我怎么就攤上這事拜隧。” “怎么了趁仙?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵洪添,是天一觀的道長。 經(jīng)常有香客問我雀费,道長干奢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任盏袄,我火速辦了婚禮忿峻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辕羽。我一直安慰自己逛尚,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布刁愿。 她就那樣靜靜地躺著绰寞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪酌毡。 梳的紋絲不亂的頭發(fā)上克握,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音枷踏,去河邊找鬼菩暗。 笑死,一個胖子當(dāng)著我的面吹牛旭蠕,可吹牛的內(nèi)容都是我干的停团。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼掏熬,長吁一口氣:“原來是場噩夢啊……” “哼佑稠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起旗芬,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤舌胶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后疮丛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體幔嫂,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡辆它,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了履恩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锰茉。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖切心,靈堂內(nèi)的尸體忽然破棺而出飒筑,到底是詐尸還是另有隱情,我是刑警寧澤绽昏,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布协屡,位于F島的核電站,受9級特大地震影響而涉,放射性物質(zhì)發(fā)生泄漏著瓶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一啼县、第九天 我趴在偏房一處隱蔽的房頂上張望材原。 院中可真熱鬧,春花似錦季眷、人聲如沸余蟹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽威酒。三九已至,卻和暖如春挺峡,著一層夾襖步出監(jiān)牢的瞬間葵孤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工橱赠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留尤仍,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓狭姨,卻偏偏與公主長得像宰啦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子饼拍,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理赡模,服務(wù)發(fā)現(xiàn),斷路器师抄,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,111評論 25 707
  • 需要在本地配置好openfire服務(wù)器 將XMPP框架拖入工程,一拖入就編譯的話是會報錯的,需要配置一下 配置一些...
    qiongyong閱讀 1,335評論 2 6
  • 最近因為生活的迷霧漓柑,也感覺學(xué)習(xí)力是未來生存發(fā)展的重要能力基礎(chǔ),感覺急需要突破自己,就報名參加了輸出力:工...
    若山12369閱讀 812評論 0 0
  • 在寫作營里欺缘,最點醒我的是兩點栋豫,“你的書寫狀態(tài)就是你的人生狀態(tài),任何寫作的問題谚殊,都要回到自身找答案”,“你現(xiàn)實呈現(xiàn)出...
    回歸之旅閱讀 231評論 0 0