這個源碼項目是一款Dollars即時聊天客戶端應用源碼,源碼也比較簡單的,希望這個案例能夠幫到大家的學習和使用。
源碼下載: http://code.662p.com/view/6725.html
An
Instant Message Client by XMPP on iPhone
使用XMPP實現的iPhone上的聊天工具。
只完成了一小部分功能。
登錄和註冊;
獲取聯繫人列表;
添加好友;
接受好友;
與好友聊天;
獲取多人聊天房間列表;
加入房間;
房間內多人聊天;
修改個人狀態;目錄結構
/Drrr: 封裝XMPP Framework,實現具體功能;
/Dollarss: 實現iPhone客戶端界面;
/XMPPFramework
項目依賴
XMPPFramework: 只使用了Core功能,extensions只使用了Reconnect;
項目本身沒有使用CoreData;
不支持arc;
Drrr包括幾個主要的部分
鏈接
DRRRManager: 一個單實例,通過 [DRRRManager sharedManager]獲取,用來管理和Jaber服務器的鏈接,發送xml數據等。 DRRRManager被其他各個功能模塊使用。
消息:
DRRRMessageContent:一個消息的條目(Message),對應XMPPMessage
DRRRMessage:整個消息列表,包括和每個聯繫人(聊天房間)的對話列表,DRRRMessage是一個單實例,通過[DRRRMessage sharedMessage]獲取,他裏面是一個messageBundle的NSDictionary,聊天者的jid就是key,value就是對話內容的列表,列表中是每一條消息,也就是DRRRMessageContent;接收到的好友邀請和房間邀請也是一個message content; 通過DRRRMessage 來發送消息。
聯繫人
DRRRRoster:是整個聯繫人列表,他是一個單實例,通過[DRRRRoster sharedRoster]獲取。通過DRRRRoster來獲取聯繫人信息,修改當前登錄用戶的狀態,訂閱和接受聯繫人邀請;
DRRRRosterMember:一個聯繫人條目;
聊天室
DRRRChatRoomManager:一個單實例,通過[DRRRChatRoomManager sharedChatRoomManager]獲取,他負責管理聊天室功能各個具體操作;
DRRRChatRoom:對應一個聊天室的房間,包括一個成員列表memberList,和房間信息chatRoomInfo;
DRRRChatRoomInfo: 一個聊天室的信息,包括一個NSArray 的features,和 NSDictionary的fields;
DRRRChatRoomInfoField: DRRRChatRoomInfo中fields中的每一個value都是一個DRRRChatRoomInfoField, 這樣的結果只是爲了對應XMPP返回來的數據格式;
DRRRChatRoomMember: 一個聊天室成員,包括角色,狀態等;
詳細說明:http://ios.662p.com/thread-1628-1-1.html