我搜索过并没有找到XMPP使用的端口。 我需要实现XMPP服务器和客户端,并使用XML传输,文件传输和流式传输。 他们使用不同的端口?有没有办法可以让他们使用所有相同的,所以我不需要打扰网络管理员? 感谢
答案 0 :(得分:91)
根据Wikipedia:
5222 TCP XMPP client connection (RFC 6120) Official 5223 TCP XMPP client connection over SSL Unofficial 5269 TCP XMPP server connection (RFC 6120) Official 5298 TCP UDP XMPP JEP-0174: Link-Local Messaging / Official XEP-0174: Serverless Messaging 8010 TCP XMPP File transfers Unofficial
端口号在RFC 6120§14.7。
中定义您说您搜索过此信息但找不到它。我通过搜索XMPP port找到了这个。我从上面引用的维基百科页面目前是该搜索的第一个结果,RFC位于搜索结果的第一页。
答案 1 :(得分:5)
根据Extensible Messaging and Presence Protocol (Wikipedia),服务器的标准TCP端口为5222。
客户端可能会使用与消息传递协议相同的端口,但也可以使用http(端口80)和https(端口443)进行消息传递。它们具有为防火墙后面的用户工作的优势,因此您的网络管理员不需要参与其中。
答案 2 :(得分:4)
您的XMPP服务器和任何XMPP客户端所需的端口将不同。大多数“现代”XMPP服务器遵循为服务器到服务器5269和客户端到服务器5222定义的IANA端口。任何其他端口取决于您在服务器上启用的功能,即如果您提供BOSH,那么您可能需要开放端口80。
文件传输高度依赖于您使用的客户端和服务器将使用的端口,但是大多数端口还通过现有的XMPP客户端到服务器链接协商连接,因此所需的端口开放将是客户端(或通过端口80代理)。
答案 3 :(得分:1)
{61}中列出了official ports(TCP:5222和TCP:5269)。与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的完整列表。