8 Stimmen

Unterschied zwischen XMPP-Servername und XMPP-Servicename?

In Smack API gibt es eine Konfigurationsklasse für die Verbindung, die auf dieser Seite beschrieben wird

Verbindungskonfiguration

Ich bin verwirrt über den Unterschied zwischen Dienstname und Servername.

Angenommen, ich habe einen Computer mit dem Namen "mybox.mydomain.com", auf dem ich ejabberd mit einem konfigurierten Host namens "myhost" habe (mit der Zeile {hosts, ["myhost"]}. in ejabbed.cfg),

Wie lauten in diesem Fall der Hostname, der Servername und der Dienstname?

8voto

Eric Punkte 2696
  • myhost: Dienstname (oder XMPP-Domäne)
  • mybox.mydomain.com: Hostname und Servername.

Sie können eine XMPP-Domäne über einen beliebigen Host hosten, sofern Sie die SRV-Einträge im DNS richtig einstellen oder wenn der Client angibt, zu welchem Host er sich verbinden soll (wie bei E-Mail).

3voto

Joe Hildebrand Punkte 9915

Denken Sie an die JID, mit der Sie sich anmelden, die Folgendes enthält username @ domain . Die domain ist der logische Name des Dienstes, den Sie verwenden. Für einige Dienste, wie jabber.org wird der Dienst auf einem Rechner ausgeführt, der den gleichen Namen wie der Dienst hat. Bei vielen anderen Diensten, wie z. B. WebEx Connect und GoogleTalk, ist die Domäne des Dienstes ein Ausgangspunkt, um herauszufinden, wo ein Socket geöffnet werden soll, aber nicht der Name des Rechners. Wenn alles richtig eingerichtet ist, können Sie den Namen des Rechners, zu dem Sie eine Verbindung herstellen wollen, im DNS nachschlagen, indem Sie eine SRV-Eintrag . Zum Beispiel mit dig:

$ dig +short -t SRV _xmpp-server._tcp.gmail.com
20 0 5269 xmpp-server4.l.google.com.
20 0 5269 xmpp-server2.l.google.com.
20 0 5269 xmpp-server1.l.google.com.
5 0 5269 xmpp-server.l.google.com.
20 0 5269 xmpp-server3.l.google.com.

Wenn die Domäne des Dienstes im DNS nicht korrekt konfiguriert ist oder Sie die Dinge nur testen wollen, ist es oft nützlich, diesen Verbindungshost getrennt von der Domäne angeben zu können. Für Ihr Beispiel würden Sie also verwenden:

ConnectionConfiguration("mybox.mydomain.com",
                        5222,
                        "myhost");

Wenn Sie möchten, dass auf diesen Dienst auch von Personen außerhalb Ihres Netzwerks zugegriffen wird (entweder von Client zu Server oder von Server zu Server), wäre es sinnvoll, die Domäne des Dienstes in eine vollqualifizierte Domäne umzubenennen, an die Sie SRV-Einträge anhängen können, die dann von diesen externen Einrichtungen verwendet werden können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X