XMPP服务器名称和XMPP服务名称之间的区别?

时间:2011-03-04 11:40:22

标签: xmpp ejabberd openfire smack

在Smack API中,有一个连接配置类,在本页描述

ConnectionConfiguration

我对服务名称和服务器名称之间的区别感到困惑。

假设我有一台名为“mybox.mydomain.com”的计算机,我在其上使用名为“myhost”的已配置主机ejabberd(使用ejabbed.cfg中的行{hosts, ["myhost"]}.),

在这种情况下,主机名,服务器名称和服务名称是什么?

2 个答案:

答案 0 :(得分:8)

  • myhost:服务名称(或XMPP域名)
  • mybox.mydomain.com:hostname and servername。

您可以在任何主机上托管XMPP域,前提是您在DNS中设置SRV记录,或者客户端指定应该连接的主机(如电子邮件)。

答案 1 :(得分:3)

考虑您用于登录的JID,其中包含username @ domaindomain是您正在使用的服务的逻辑名称。对于某些服务,例如jabber.org,服务在与服务同名的框上运行。对于许多其他人,例如WebEx Connect和GoogleTalk,服务域是确定打开套接字的位置的起点,而不是机器的名称。如果一切设置正确,您可以使用SRV record在DNS中查找要连接的计算机的名称。例如,使用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记录。