So erstellen Sie eine jabber - /XMPP-proxy - /logging-service?
Ich arbeite für ein Unternehmen, das mit Google Chatzurück (anonyme chat mit einem support-Mitarbeiter in meiner Firma der Fall) als die Haupt-chat-service-Anbieter. Dieser Dienst verwendet das XMPP (ehemals Jabber) Protokoll zum senden und empfangen von Nachrichten.
Unsere Firma hat zehn support-Mitarbeiter-Konten, und Sie sind zugänglich durch die chatzurück service haben wir auf unserer website verwendet. Die Mitarbeiter nutzen sowohl Mac OSX und Windows, zusammen mit den unterschiedlichen clients auf die verschiedenen Betriebssysteme. Der chat ist auch über native apps auf Android und iOS.
Wir brauchen einen service für die Protokollierung der chat-Sitzungen, und wir haben gesucht in proprietäre Lösungen, aber diese werden nicht unterstützt, auf den mobilen Plattformen, und das ist im Grunde der dealbreaker.
Die Lösung, die ich haben beschlossen, ist die Einführung weiterer link in der Nachricht, die Kette, die protokolliert alle Nachrichten. Die Idee ist, dass der server sendet durch diesen proxy, dass Protokolle, die Nachrichten nach, die chat-Sitzung ist es, und dann speichert die Protokolle in geeigneter Weise. Derzeit werden Sie die Speicherung aller Protokolle in einem Dropbox-Ordner, das ist ein Fehler-anfällig Aktivität.
Diese würden in der Theorie, damit unsere Unterstützer, zu verwenden, was os/client, die Sie gewählt haben, und die Protokolle am Ende der gleichen Stelle.
Haben einige tests durchgeführt unter Verwendung der Smack-API, habe ich festgestellt, dass mein XMPP-client (Trillian auf Android und Windows) Antworten auf die Ressource aus, die es zuletzt eine Nachricht empfangen wurde. Dies bedeutet effektiv, dass die sehr einfache chat-logger, die ich umgesetzt haben, wird einfach ignoriert.
Den test durchgeführt wurden, mithilfe des folgenden Codes gepaart mit einem anderen client, der parallel ausgeführt wird. Nur einer der clients die Nachricht erhält.
ConnectionConfiguration config = new ConnectionConfiguration("talk.google.com", 5222, "googlemail.com");
config.setSecurityMode(ConnectionConfiguration.SecurityMode.required);
config.setSASLAuthenticationEnabled(true);
XMPPConnection connection = new XMPPConnection(config);
connection.connect();
Presence presence = new Presence(Presence.Type.unavailable);
connection.login("android_client_username", "android_client_pass");
Message message = new Message("[email protected]");
message.setBody("Hello World!");
connection.sendPacket(message);
connection.sendPacket(presence);
connection.addPacketListener(new PacketListener() {
public void processPacket(Packet packet) {
if (packet instanceof Message) {
Message message = (Message) packet;
System.out.println(message.getBody());
}
}
}, new MessageTypeFilter(Message.Type.chat));
- Ist es möglich, das erstellen eines solchen proxy mit dem Google Talk-Dienst, d.h. ohne hosting unserer eigenen XMPP-server?
- Ist es überhaupt möglich, zuzuhören, auf alle Pakete auf dem server per Remote?
- Wenn nicht, welche alternativen gibt es für den anonymen web-basierte chat-clients nutzen ein offenes Protokoll wie XMPP?
Vielen Dank für Ihre Zeit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum nicht nutzen XMPP über HTTP, dann melden Sie die Nachrichten über eine HTTP-proxy (set all Ihren XMPP-clients zu sprechen, um die HTTP-proxy-eher als der Endpunkt direkt)?
Ich bin auch nicht sicher, ob es Auswirkungen auf Sie und Ihren service, aber nur für Ihre Informationen, die in der Vergangenheit habe ich erlebt 407 Proxy Auth. - Antwort-code, während es versucht, um cross-domain-text/xml-ajax-Anfragen. Meist nur dann, wenn Sie sich hinter einer firewall/http-proxy(squid) Art von Umgebung. Lösung ist meist fallback-Modus zu jsonp, wenn Sie sich hinter einem proxy.
Test Überprüfen:
1) setup lokalen squid
2) verwenden Sie strophejs basic-Beispiele
3) setup-cross-domain-ajax d.h. BOSH_SERVICE_URL domain ist nicht dasselbe wie anfragende domain
4) konfigurieren Sie die browser für die Verwendung lokaler squid
5) finden Sie alle POST-api-Aufrufe, d.h. /http-bind-text/xml-Aufrufe fehl, mit 407 proxy auth-response-code
6) entfernen Sie die proxy-Nutzung von browser
7) versuchen Sie es erneut, funktioniert alles mit CORS aktiviert
können Sie versuchen, gozerbot wenn es Ihnen gelingt, Sie zu konfigurieren