我是XMPP的新手,我實現了ejabberd。我的本地主機名是 'Orange.local'
有三個用戶。一個從我的模擬器以[email protected]身份登錄,第二個從iMessanger以[email protected]登錄。 我創建一個組被創建獲取名單而不是組名單XMPP iOS Swift
@IBAction func CreateGroupBtn(sender: UIButton)
{
var roomJID = XMPPJID.jidWithString("[email protected]")
var roomMemoryStorage = XMPPRoomMemoryStorage()
var xmppRoom = XMPPRoom(roomStorage: roomMemoryStorage, jid: roomJID, dispatchQueue: dispatch_get_main_queue())
xmppRoom.activate(xmppStream())
xmppRoom.addDelegate(self, delegateQueue: dispatch_get_main_queue())
xmppRoom.joinRoomUsingNickname("admin", history: nil);
}
func xmppRoomDidCreate(sender: XMPPRoom!)
{
println("room created \(sender.description)");
}
func xmppRoomDidJoin(sender: XMPPRoom!) {
println("romm joined")
sender.fetchConfigurationForm()
sender.configureRoomUsingOptions(nil)
sender.fetchMembersList();
sender.sendMessageWithBody("null");
var strInvitedUserName = XMPPJID.jidWithString("[email protected]");
sender.inviteUser(strInvitedUserName, withMessage: "greetings");
}
房間,我能夠在組[email protected]聊天。 現在我想要得到所有組的名稱[email protected]我的意思是所有組(房間)其中[email protected]是組的成員。
我申請這個代碼來獲取組列表:
override func viewDidLoad()
{
super.viewDidLoad()
var server = "conference.orange.local";
var id = xmppStream().generateUUID();
var serverJID = XMPPJID.jidWithString(server)
var iq = XMPPIQ.iqWithType("get", to: serverJID, elementID: id)
iq.addAttributeWithName("from", stringValue: "[email protected]")
var query = DDXMLElement.elementWithName("query") as! DDXMLElement;
query.addAttributeWithName("xmlns", stringValue: "http://jabber.org/protocol/disco#items")
iq.addChild(query);
xmppStream().addDelegate(self, delegateQueue: dispatch_get_main_queue())
xmppStream().sendElement(iq);
}
但我正在逐漸名冊響應這樣的:
<iq xmlns="jabber:client" from="[email protected]"
to="[email protected]/35441594471443421711351344"
id="3F9B0234-0233-4DF0-9174-34CC82FF6B70" type="result">
<query xmlns="jabber:iq:roster">
<item subscription="both" jid="[email protected]">
<group>Buddies</group>
</item>
<item subscription="both" jid="[email protected]">
</item>
</query>
</iq>
和我的第二個問題是,當我取回所有組成員它返回空陣列這裏是代碼:
func xmppRoom(sender: XMPPRoom!, didFetchMembersList items: [AnyObject]!) {
println("members= \(items)");
}
請幫助我得到所有組和成員關節組。 在此先感謝並對我的英語不好。
你能指導我設置ejabbered嗎? –
在這裏你可以找到安裝程序的最佳教程。 :http://code.tutsplus.com/tutorials/building-a-jabber-client-for-ios-server-setup--mobile-6958 –
我陷入了同樣的境地。你有任何解決方案.. –