XMPP服务器名和XMPP服务名之间的区别是什么?

8
在Smack API中,有一个连接配置类,在这个页面上进行了描述。 ConnectionConfiguration 我对服务名称和服务器名称之间的区别感到困惑。
假设我有一台名为“mybox.mydomain.com”的计算机,并且在其中安装了ejabberd,并使用配置的主机名“myhost”(在ejabbed.cfg中使用行{hosts, ["myhost"]}。),
在这种情况下,主机名、服务器名和服务名分别是什么?
2个回答

8
  • myhost: 服务名称(或XMPP域名)
  • mybox.mydomain.com: 主机名和服务器名。

您可以在任何主机上托管XMPP域,只要您在DNS中正确设置SRV记录或者客户端指定连接到哪个主机(例如电子邮件)。


1
主机名和服务器名总是相同的吗? - Jus12

3

想一下你使用的JID来登录,它包含username@domaindomain是您正在使用的服务的逻辑名称。 对于某些服务(如jabber.org),该服务在具有与服务相同名称的框上运行。 对于许多其他服务,例如WebEx Connect和GoogleTalk,服务域是确定在哪里打开套接字的起点,但不是机器的名称。 如果一切都设置正确,您可以使用SRV记录在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记录以供外部实体使用,这是有意义的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接