In der Smack-API gibt es eine Konfigurationsklasse für die Verbindung, die auf dieser Seite beschrieben wird
Ich bin verwirrt über die Unterscheidung zwischen Dienstname und Servername.
Angenommen, ich habe einen Computer mit dem Namen "mybox.mydomain.com", und ich habe ihn mit einem konfigurierten Host namens "myhost" (unter Verwendung der Zeile {hosts, ["myhost"]}.
in ejabbed.cfg), ejabbered,
Was ist in diesem Fall der Hostname, Servername und Dienstname?
Sie können eine XMPP-Domäne über einen beliebigen Host hosten, vorausgesetzt, Sie legen die SRV-Datensätze im DNS fest, oder wenn der Client angibt, an welchen Host er sich verbinden soll (wie E-Mail).
Denken Sie an die JID, mit der Sie sich anmelden, die username
@ domain
enthält. Der domain
ist der logische Name des Dienstes, den Sie verwenden. Bei einigen Diensten wie jabber.org
wird der Dienst in einer Box ausgeführt, die den gleichen Namen wie der Dienst hat. Für viele andere wie WebEx Connect und GoogleTalk ist die Servicedomäne ein Ausgangspunkt, um herauszufinden, wo ein Socket geöffnet werden soll, aber nicht der Name des Computers. Wenn alles richtig eingerichtet ist, können Sie den Namen des Computers nachschlagen, mit dem im DNS eine Verbindung hergestellt werden soll. Verwenden Sie dazu einen SRV-Eintrag . Zum Beispiel mit dig:
Wenn die Servicedomäne im DNS nicht korrekt konfiguriert ist oder Sie nur Dinge testen, ist es oft hilfreich, diesen Verbindungshost getrennt von der Domäne angeben zu können. Also für Ihr Beispiel würden Sie verwenden:
%Vor%Wenn Sie möchten, dass auf diesen Dienst von Personen zugegriffen wird, die sich nicht in Ihrem Netzwerk befinden (Client-zu-Server oder Server-zu-Server), ist es sinnvoll, Ihre Dienstdomäne in eine vollständig qualifizierte Umgebung umzubenennen Sie können SRV-Datensätze für diese externen Entitäten anhängen.