2016-07-29 16 views
0

Ich benutze Openfire-Server und XMPP-Protokoll zum Chatten und ich habe Erfolg darin.Wie man Zimmerliste von openfire holt?

Jetzt möchte ich Raum Chatten implementieren. Ich google viel darüber, was ich bekomme, ist "Joing Room", "Create Room", aber zuerst möchte ich eine Liste aller Zimmernamen von der Konferenz erhalten.

ich habe conferance und Zimmer drin:

#define CONFERENCE_ROOM_SERVER  @"chatroomforfriends" 
#define CONFERENCE_ROOM_NAME  @"cr1" 

'chatroomforfriends' ist conferance Name und es CR1 Zimmer enthalten.

Wie hole ich alle Zimmernamen in iOS?

Antwort

0

Wie pro MUC XEP (0045) können Sie die Liste aller Räume durch die Abfrage erhalten können:

<iq from='[email protected]/pda' 
id='zb8q41f4' 
to='chat.shakespeare.lit' 
type='get'> 
    <query xmlns='http://jabber.org/protocol/disco#items'/> 
</iq> 

und Sie erhalten die Antwort als:

<iq from='chat.shakespeare.lit' 
    id='zb8q41f4' to='[email protected]/pda' type='result'> 
    <query xmlns='http://jabber.org/protocol/disco#items'> 
    <item jid='[email protected]' 
     name='A Lonely Heath'/> 
    <item jid='[email protected]' 
     name='A Dark Cave'/> 
    <item jid='[email protected]' 
     name='The Palace'/> 
    <item jid='[email protected]' 
     name='Macbeth&apos;s Castle'/> 
    </query> 
</iq> 

Einzelheiten erwähnt werden in XEP-0045

Diese Methode gibt alle öffentlichen Räume zurück, die vom MUC-Dienst gehostet werden. Um private Räume zu bekommen, oder Räume eines bestimmten Benutzers zu bekommen, müssen Sie ein Plugin schreiben, um Ihre benutzerdefinierte Abfrage (XMPP Way) zu behandeln oder Sie können ein Servlet (HTTP Way) in Openfire dafür schreiben.

+0

ja, ich habe allen Raum, aber wie Sie sagen, es holen alle Zimmer, aber ich muss nur Zimmer mit Benutzer verbunden holen. – Kabali

+0

Der einfachste Weg besteht darin, einen HTTP-Dienst zu erstellen (entweder in Openfire Project oder Standalone mit Zugriff auf Openfire DB). Der Dienst nimmt den Benutzer jid als Anfrageparameter und kann openfire db abfragen, um alle Räume des Benutzers und die Zugehörigkeit (Eigentümer, Administrator) des Benutzers auszuwählen, und die Liste kann nach Anwendung geparst werden. –

Verwandte Themen