【发布时间】:2011-03-28 00:00:29
【问题描述】:
我已经搜索并没有找到 XMPP 使用哪些端口。 我需要实现 XMPP 服务器和客户端,并使用 XML 传输、文件传输和流式传输。 他们使用不同的端口吗?有没有办法让它们都一样使用,所以我不需要打扰网络管理员? 谢谢
【问题讨论】:
我已经搜索并没有找到 XMPP 使用哪些端口。 我需要实现 XMPP 服务器和客户端,并使用 XML 传输、文件传输和流式传输。 他们使用不同的端口吗?有没有办法让它们都一样使用,所以我不需要打扰网络管理员? 谢谢
【问题讨论】:
【讨论】:
根据Extensible Messaging and Presence Protocol (Wikipedia),服务器的标准TCP端口是5222。
客户端可能会使用与消息传递协议相同的端口,但也可以使用 http(端口 80)和 https(端口 443)进行消息传递。这些具有为防火墙后面的用户工作的优势,因此您的网络管理员不需要参与其中。
【讨论】:
您的 XMPP 服务器和任何 XMPP 客户端所需的端口都不同。大多数“现代”XMPP 服务器遵循为服务器到服务器 5269 和客户端到服务器 5222 定义的 IANA 端口。任何其他端口取决于您在服务器上启用的功能,即如果您提供 BOSH,那么您可能需要打开 80 端口。
文件传输在很大程度上取决于您使用的客户端和服务器将使用哪个端口,但它们中的大多数还通过您现有的 XMPP 客户端到服务器链接协商连接,因此所需的端口开放将是客户端(或通过端口 80 代理。)
【讨论】:
official ports(TCP:5222 和 TCP:5269)列在 RFC 6120 中。与 previous answer 的声明相反,XEP-0174 does not specify a port。因此 TCP:5298 可能是 Link-Local XMPP 的惯例,但不是官方的。
您可以使用保留端口以外的其他端口:您可以让您的 DNS SRV 记录指向您喜欢的任何机器和端口。
File transfers (XEP-0234) 现在使用Jingle (XEP-0166) 处理。 RTP sessions (XEP-0167) 也是如此。但是,它们没有指定端口,因为 Jingle 在 XMPP 客户端之间协商创建数据流,但实际数据随后通过该流以其他方式(例如 RTP)传输(即通常不通过 XMPP 服务器,即使带内传输是可能的)。请注意,Jingle 由多个 XEP 组成,因此请务必查看 XMPP extensions 的完整列表。
【讨论】: