2013-05-11 57 views
3

我今天XMPPFramework一個挑戰......XMPPFramework/iOS的問題:發送和接收訂閱

我已經正確配置ejabberd:服務器是啓動和運行,並通過帶註冊正確註冊用戶。

但是,當我嘗試從一個設備發送訂閱請求時,第二個不能接收第一個設備的在線狀態。下面是我使用的第一個設備上的訂閱用戶的代碼,如記錄:

[[[self appDelegate] xmppRoster] addUser:userJID withNickname:nickname groups:nil subscribeToPresence:YES]; 

如果一切正常的話,第二個設備必須解僱的委託方法:

- (void)xmppRoster:(XMPPRoster *)sender didReceiveBuddyRequest:(XMPPPresence *)presence 

的問題是這個委託方法從未被解僱。 服務器爲用戶創建新聯繫人,我可以在ejabberd Web管理員上看到它,但訂閱類型設置爲無。

任何想法?

UPDATE:

嗯,看來我忘記包括主機名到JID。現在,XMPPRoster的代表沒有被調用,但是我可以在ejabberd上看到請求不是'none',而是'Both'和待驗證。

無法想象爲什麼XMPPRoster代表不燒...看來,當用戶收到新訂閱請求ejabberd服務器不發送正確的通知...

回答

1

似乎eJabberd是配置錯誤或其他。剛剛安裝了OpenFire,一切正常。

+0

嗨Yoryo,我面臨同樣的問題,我使用明火,但沒有得到一個用戶的存在。請幫忙,其緊急 – Khushboo 2014-07-30 17:51:47

+0

嗯,我不再使用這個XMPPFramework項目,但我記得OpenFire有一個用戶管理工具。也許你必須查看你從委託方法中得到的節。你可以在這裏閱讀:https://github.com/robbiehanson/XMPPFramework/wiki/IntroToFramework – 2014-07-31 06:20:37

+0

我有理由相信OpenFire可能有解決JID的「資源」部分的方法,而ejabberd並沒有。當JID的資源部分被添加和訂閱時,委託方法觸發。 – esh 2014-12-31 14:46:44