2016-03-22 4 views
4

Ich baue eine App, wo ich den Online-/Offline-Status nur der Benutzer finden muss, mit denen ich in der Vergangenheit Nachrichten ausgetauscht habe. Nicht alle Benutzer auf dem Server verfügbar. Danke im Voraus.So überprüfen Sie das Vorhandensein von bestimmten Benutzer Online/Offline-Status über XMPP-Server

+0

Hallo, ich möchte die gleiche Sache zu implementieren. Didi hast du irgendeine Lösung dafür? Wenn ja, lass es mich wissen. Vielen Dank. – nikBhosale

+0

@nikBhosale Ich erhalte nicht den Online-/Offline-Status eines bestimmten Benutzers. Also was ich tue, speichert alle Benutzer online/offline-Status in einem Array und Filtern dieses Array für die Benutzer, die ich Status auf der Grundlage von Jabber-ID anzeigen möchten. –

+0

Okay, aber ich denke, es wäre weniger effizient, da Sie Ihr Array im kontinuierlichen Hör- und Bearbeitungsmodus halten müssen. Stattdessen können Sie vielleicht meine Antwort mit XMPPIQ ansehen. Auch bitte upvote, wenn Sie denken, dass es richtig ist. Vielen Dank. – nikBhosale

Antwort

0

Presences werden gesendet, so dass Sie sie nur erhalten, wenn das "passieren". Es gibt Anwesenheitssonden im Kontext eines Remote-Servers (S2S, Server-zu-Server). Aber es gibt keine Umfrage.

1

-Sie bestimmter Benutzer Online/Offline-Status erhalten kann mit XMPPIQ Sie XMPPIQ mit ‚Typ get‘ erstellen müssen, wie folgend

let query = XMLElement(name: "query", xmlns: "jabber:iq:last") 
     let streamUUID = self.xmppStream.generateUUID() 
     let iq = XMPPIQ(type: "get", to: XMPPJID(string: jid) , elementID: streamUUID , child: query) 
     self.xmppStream.send(iq) 
     return streamUUID! 

dann gibt es Delegatmethode in XMPPStreamDelegate Protokoll namens 'didReceive iq:', müssen Sie Griff IQ Ergebnis in thi smethod wie folgt zur Verfügung stellen,

Verwandte Themen