разница между именем сервера XMPP и именем сервера XMPP? - PullRequest
8 голосов
/ 04 марта 2011

В Smack API есть класс конфигурации для подключения, описанный на этой странице

ConnectionConfiguration

Я не совсем понимаю различие между именем службы и именем сервера.

Предположим, у меня есть компьютер с именем "mybox.mydomain.com", и на нем установлен ejabberd с настроенным хостом с именем "myhost" (используется строка {hosts, ["myhost"]}. в ejabbed.cfg),

что такое имя хоста, имя сервера и имя службы в этом случае?

Ответы [ 2 ]

8 голосов
/ 04 марта 2011
  • myhost: имя службы (или домен XMPP)
  • mybox.mydomain.com: имя хоста и имя сервера.

Вы можете разместить домен XMPP на любом хосте, при условии, что вы устанавливаете записи SRV прямо в DNS или если клиент указывает, к какому хосту он должен подключаться (например, к электронной почте).

3 голосов
/ 06 марта 2011

Подумайте о JID, который вы используете для входа, который содержит username @ domain.domain - это логическое имя службы, которую вы используете.Для некоторых служб, таких как jabber.org, служба запускается в поле, имя которого совпадает с именем службы.Для многих других, таких как WebEx Connect и GoogleTalk, домен службы является отправной точкой для определения, где открыть сокет, но не для имени машины.Если все настроено правильно, вы можете найти имя машины для подключения в DNS, используя SRV запись .Например, используя 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.

Если домен службы неправильно настроен в DNS или вы просто тестируете что-то, часто бывает полезно иметь возможность указать этот хост подключения отдельно отдомен.Итак, для вашего примера вы должны использовать:

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

Если вы когда-нибудь захотите, чтобы к этой службе обращались люди из вашей сети (клиент-сервер или сервер-сервер), она быимеет смысл переименовать домен службы как нечто полностью квалифицированное, к которому вы можете прикрепить записи SRV для использования этими внешними объектами.

...