首頁 收藏 QQ群
 網(wǎng)站導(dǎo)航

ZNDS智能電視網(wǎng) 推薦當(dāng)貝市場

TV應(yīng)用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計算器

綜合交流 / 評測 / 活動區(qū)

交流區(qū) | 測硬件 | 網(wǎng)站活動 | Z幣中心

新手入門 / 進(jìn)階 / 社區(qū)互助

新手 | 你問我答 | 免費(fèi)刷機(jī)救磚 | ROM固件

查看: 14761|回復(fù): 0
上一主題 下一主題
[教程]

Android中基于XMPP協(xié)議的即時聊天系統(tǒng)的開發(fā)筆記 - 注冊、登陸

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2013-8-28 16:27 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
87Android中基于XMPP協(xié)議的即時聊天系統(tǒng)的開發(fā)筆記 - 注冊、登陸     
   
        登錄前我們要知道用戶名和密碼(這不是廢話么......),XMPP的用戶名又稱JID,先看一個XMPP的用戶名范例:wumeng@yiqiwan.com/smack,wumeng相當(dāng)于自定義的用戶名,yiqiwan.com就是上文的結(jié)點(diǎn)標(biāo)識符,smack可有可無,我理解為是資源標(biāo)識符的意思,可以自己修改,Android中用asmack默認(rèn)就是smack,我沒管過它。   
   
        注冊:   
        我們的服務(wù)器是HTTP+XMPP,常規(guī)數(shù)據(jù)從HTTP服務(wù)器獲取,聊天才用XMPP;因?yàn)槲覀兊挠脩羰窃诰W(wǎng)站注冊,所以在后臺我們注冊用戶以后直接向XMPP的服務(wù)器數(shù)據(jù)庫中插入用戶數(shù)據(jù),不用客戶端注冊,不過為了寫如何注冊,我百度了一下,調(diào)試了一下,發(fā)現(xiàn)沒有問題,就貼上來了:   
Registration reg = new Registration();   
reg.setType(IQ.Type.SET);   
reg.setTo(BaseXmpp.getConnection().getServiceName());   
reg.setUsername("wumeng");// 注意這里注冊時,參數(shù)是用戶名,不是JID,是@前面的部分。   
reg.setPassword("mengge123");   
reg.addAttribute("RegType", "Android");// 這邊addAttribute不能為空,否則出錯。   
PacketFilter filter = new AndFilter(new PacketIDFilter(reg.getPacketID()),   
                new PacketTypeFilter(IQ.class));   
PacketCollector collector = BaseXmpp.getConnection().createPacketCollector(filter);   
BaseXmpp.getConnection().sendPacket(reg);   
IQ result = (IQ) collector.nextResult(SmackConfiguration.getPacketReplyTimeout());   
// Stop queuing results   
collector.cancel();// 停止請求results(是否成功的結(jié)果)   
if (result == null) {   
        System.out.println("服務(wù)器沒有返回結(jié)果");   
} else if (result.getType() == IQ.Type.ERROR) {   
        if (result.getError().toString().equalsIgnoreCase("conflict(409)")) {   
                System.out.println("這個賬號已經(jīng)存在");   
        } else {   
                System.out.println("注冊失敗");   
        }   
} else if (result.getType() == IQ.Type.RESULT) {   
        System.out.println("恭喜你注冊成功");   
}   
        代碼稍微修改了一下,很簡單清晰,沒什么可說的reg.addAttribute這里可以添加自定義的字段,比如性別什么的,看自己需求了,但是不能為空,我這里用了注冊類型。   
   
        登陸:   
        Asmack的登陸很簡單,只需要JID前面的用戶名和密碼即可,無需再去拼裝JID什么的,代碼如下:   
// 登陸XMPP服務(wù)器   
BaseXmpp.getConnection().login("wumeng","mengge123");   
        登陸前最好用BaseXmpp.getConnection().isConnected()方法先驗(yàn)證下是否已經(jīng)初始化XMPP,否則會報錯;   
        登陸后可以使用BaseXmpp.getConnection().isAuthenticated()查看是否登陸成功

上一篇:一健查詢話費(fèi)
下一篇:攝像頭編程
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

Archiver|新帖|標(biāo)簽|軟件|Sitemap|ZNDS智能電視網(wǎng) ( 蘇ICP備2023012627號 )

網(wǎng)絡(luò)信息服務(wù)信用承諾書 | 增值電信業(yè)務(wù)經(jīng)營許可證:蘇B2-20221768 丨 蘇公網(wǎng)安備 32011402011373號

GMT+8, 2025-1-30 10:45 , Processed in 0.053605 second(s), 15 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報:report#znds.com (請將#替換為@)

© 2007-2025 ZNDS.Com

快速回復(fù) 返回頂部 返回列表