2013-05-05 8 views
7

Um Chat-Funktionalität in meiner App zu implementieren, habe ich XMPP-Framework in es integriert. Es gibt keine Buddy-Anfrage-Funktionalität, daher können Benutzer Nachrichten an andere Benutzer senden, ohne eine Buddy-Anfrage zu senden. Aufgrund dieser Funktionalität habe ich keine Roster- oder Datenschutzliste in der App erstellt, und der anonyme Chat-Modus wurde implementiert.Blockieren anonymer Benutzer in XMPP

Es funktioniert alles gut außer der Blockbenutzerfunktionalität, da dies ein anonymer Benutzerchat ist, daher gibt es keine Datenschutzliste für die Benutzer und die XMPP-Erweiterung XEP-016 unterstützt nur die Blockierung durch die Datenschutzliste.

Ich habe auch versucht, nach den Alternativen zu suchen, und eine davon ist, XEP-0191 zu implementieren, aber leider unterstützt Open Fire diese Erweiterung nicht.

Also Techies bitte führen Sie mich, um dieses Problem zu beheben. Nachfolgend sind meine Fragen.

  1. Muss ich eine Datenschutzliste erstellen, um einen Benutzer im anonymen Benutzerchatmodus zu blockieren. Diese Lösung scheint unpraktisch zu sein, da meine App Tausende von Benutzern haben kann.

  2. Soll ich den Jabber-Server vom offenen Feuer auf EJabber umstellen? Hat Ejabber Unterstützung XEP-0191

Neben oben von bitte lassen Sie mich wissen, ob ihr andere Abhilfe kennen einen Benutzer in anonymer Benutzer Chat-Modus in Jabber zu blockieren/entsperren.

Antwort

0

Leider muss ich bei Open Fire Server bleiben. Um das Blockbenutzerproblem zu beheben, musste ich die Dokumentation von XMPP durchgehen und fand schließlich die Lösung in XEP-0016, diese Erweiterung hat tatsächlich die Fähigkeit, die anonyme Blockierung von Benutzern zu unterstützen. Um dies zu erreichen, muss man eine Datenschutzliste auf dem Server unter Verwendung der - (void)setListWithName:(NSString *)privacyListName items:(NSArray *)items fromUser:(NSString *)user; Methode erstellen. Anschließend markieren Sie die erstellte Liste als aktive Liste, indem Sie die Methode - (void)setActiveListName:(NSString *)privacyListName; aufrufen.

XEP-0016 hat nichts mit Roster zu tun und kann anonymen Benutzer-Chat blockieren.

+0

Ich habe ähnliche App wie Ihre und ich bin nicht in der Lage, anonyme Benutzer zu blockieren. Können Sie uns bitte mitteilen, wie genau Sie diese Funktionalität erreicht haben? Ich benutze xmpp mit ejabber server. –

+0

@Sunil_Vaishnav müssen Sie eine Sperrliste für blockierte Benutzer auf dem Jabber-Server verwalten. Jedes Mal, wenn ein Benutzer blockiert/entsperrt wird, müssen Sie Änderungen in dieser Datenschutzliste vornehmen. Weitere Informationen finden Sie in XEP-0016. – sandy

+0

@sandy, @ Sunil_Vaishnav Ich möchte einfach blockieren und entsperren Benutzer in XMPP Finden Sie den folgenden Link für weitere Informationen. https: // Stapelüberlauf.com/q/46155095/2910061 Danke. – ilesh

1

Ich habe keine Erfahrung mit EJabber-Server, aber XEP 0191 ist definitiv das Protokoll, das Sie brauchen.

Sie können hier http://www.ejabberd.im/protocols suchen und sehen, dass EJabber Ihr Protokoll unterstützt.

Mein Ratschlag wird sein, den Server zu ändern.

1

Ein Block ist sowieso egal. Wenn Sie eine Person blockieren, können sie einfach einen neuen anonymen Benutzer erstellen und mit Ihnen Kontakt aufnehmen. Während dies wie eine Menge Aufwand scheint, könnte es leicht gescriptet werden, um Spam-Nachrichten zu senden. Alle 30 Minuten erstellen Sie einen neuen Account und spammen jeden, werden rausgeschmissen und wiederholt.

Zumindest müssen Sie XEP-0191 (Server Side Block List) implementieren und herausfinden, wie Sie mit anonymen neuen Konten umgehen.