2010-08-10 118 views
46

我搜索了並沒有發現XMPP使用哪些端口。 我需要實現XMPP服務器和客戶端,並使用XML傳輸,文件傳輸和流媒體。 他們使用不同的端口?有沒有一種方法可以讓他們使用所有相同的,所以我不需要打擾網絡管理員? 感謝XMPP使用哪個端口?

回答

83

根據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位於搜索結果的第一頁。

+0

還有一些關於RFC 2.3.3,2.4和2.5中的推薦端口#的其他評論(http://www.ietf.org/rfc/rfc3920.txt) – 2010-08-10 18:44:31

4

根據Extensible Messaging and Presence Protocol (Wikipedia),服務器的標準TCP端口是5222

客戶端大概使用相同的端口的消息傳遞協議,但也可以使用HTTP(端口80)和https(端口443)用於消息傳遞。這些功能有利於防火牆後的用戶,因此您的網絡管理員不需要介入。

+2

但是對於文件傳輸I將需要另一個端口,不是嗎? – fredcrs 2010-08-10 18:46:34

3

對於您的XMPP服務器和任何XMPP客戶端,所需的端口將有所不同。大多數「現代」XMPP服務器都遵循服務器到服務器5269和客戶端到服務器5222的定義IANA端口。任何其他端口取決於您在服務器上啓用的功能,即如果您提供BOSH,那麼您可能需要打開端口80.

文件傳輸高度依賴於您使用的客戶端和服務器,以及它將使用哪個端口,但其中大多數還通過您現有的XMPP客戶端到服務器鏈接協商連接,因此需要口開口將是客戶端(或通過端口80爲代表)

0

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的整個列表。