標籤:
前面幾篇,我們討論了環境的配置,架構的匯入和使用者登陸,這一篇我們來說說好友模組。
在進入正題之前,我們來說下調試。
首先,開啟喜好設定,看一下Openfire伺服器和MySQL是否開啟,記得先開啟MySQL,再開啟Openfire,隨後,點擊Open Admin ConConsole,
出現下面的頁面,就成功了。
輸入使用者名稱和密碼,登入,出現這個介面:
隨後,點擊導覽列上的“使用者/組”,出現了使用者和聊天組的管理
我們可以看到,使用者中有兩個,一個是管理員,一個是普通使用者zhangsan,我們點擊左側菜單,建立一個使用者wangwu,登入密碼123456。
在mac上,有個叫 資訊 的應用,點開它。,並在功能表列中選擇添加賬戶
選擇其他“資訊”賬戶,點擊繼續。
點擊登入,成功連上,我們可以回到Openfire控制台,發現張三已經登入。
這樣就成功了,我們可以用程式和張三聊天。。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
接下來是今天的正題,好友模組。
我們在上一篇設定模組的方法中,加入好友模組,並啟用。
// 好友模組 self.xmppRoster = [[XMPPRoster alloc] initWithRosterStorage:[XMPPRosterCoreDataStorage sharedInstance]]; // 不自動同意好友申請 [self.xmppRoster setAutoAcceptKnownPresenceSubscriptionRequests:NO]; [self.xmppRoster setAutoClearAllUsersAndResources:NO]; //登入完成之後 不自動同步一次好友名單 [self.xmppRoster setAutoFetchRoster:NO]; // 好友聊天記錄模組 self.xmppMessageArchiving = [[XMPPMessageArchiving alloc] initWithMessageArchivingStorage:[XMPPMessageArchivingCoreDataStorage sharedInstance]]; // 啟用 [self.xmppRoster activate:self.xmppStream]; [self.xmppMessageArchiving activate:self.xmppStream];
我們可以通過下面這個代理方法獲得好友的上下線通知:
- (void)xmppStream:(XMPPStream *)sender didReceivePresence:(XMPPPresence *)presence { //這個if成立的時候說明對方想要訂閱你 if ([presence.type isEqualToString:@"subscribe"]) { [self.xmppRoster acceptPresenceSubscriptionRequestFrom:presence.from andAddToRoster:YES]; }}
收到一個presence訊息,當然,我們這裡沒有對好友上線做操作,當前代碼的意思是收到好友訂閱請求,並且同意。
- (void)addUser:(XMPPJID *)jid withNickname:(NSString *)optionalName;
上面這段代碼的作用就是發送添加好友的請求。然後,對方在上面的代理中收到訂閱訊息,選擇同意或者彈出加好友的請求。
下一篇,我們來說說好友名單模組。
iOS開發--XMPPFramework--好友模組(四)