Подумайте о 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 для использования этими внешними объектами.