XMPPが使用するポートを検索しましたが見つかりませんでした。XMPPサーバーとクライアントを実装し、XML転送、ファイル転送、ストリーミングを使用する必要があります。彼らは異なるポートを使用していますか?それらをすべて同じように使用させる方法はありますか?ネットワーク管理者に迷惑をかける必要はありませんか?ありがとう
4 に答える
ウィキペディアによると:
5222 TCP XMPPクライアント接続(RFC 6120)公式 5223SSLを介したTCPXMPPクライアント接続非公式 5269 TCP XMPPサーバー接続(RFC 6120)公式 5298 TCP UDP XMPP JEP-0174:リンクローカルメッセージング/公式 XEP-0174:サーバーレスメッセージング 8010TCPXMPPファイル転送非公式
ポート番号はRFC6120§14.7で定義されています。
Extensible Messaging and Presence Protocol(Wikipedia)によると、サーバーの標準TCPポートは5222です。
クライアントはおそらくメッセージングプロトコルと同じポートを使用しますが、メッセージ配信にhttp(ポート80)とhttps(ポート443)を使用することもできます。これらには、ファイアウォールの背後にいるユーザーのために機能するという利点があるため、ネットワーク管理者が関与する必要はありません。
必要なポートは、XMPPサーバーとXMPPクライアントで異なります。ほとんどの「最新の」XMPPサーバーは、サーバーからサーバー5269およびクライアントからサーバー5222に対して定義されたIANAポートに従います。追加のポートは、サーバーで有効にする機能によって異なります。つまり、BOSHを提供する場合は、次のことを行う必要があります。ポート80を開きます。
ファイル転送は、使用するクライアントとサーバーの両方に大きく依存しますが、それらのほとんどは、既存のXMPPクライアントからサーバーへのリンクを介して接続をネゴシエートするため、必要なポート開口部はクライアント側になります(またはポート80を介してプロキシされます。)
公式ポート(TCP:5222およびTCP:5269)はRFC 6120にリストされています。前の回答の主張とは異なり、XEP-0174はポートを指定していません。したがって、TCP:5298はリンクローカルXMPPでは一般的かもしれませんが、公式ではありません。
ただし、予約済みのポート以外のポートを使用することもできます。DNSSRVレコードが任意のマシンとポートを指すようにすることができます。
最近のファイル転送(XEP-0234)は、Jingle(XEP-0166)を使用して処理されます。同じことがRTPセッション(XEP-0167)にも当てはまります。ただし、JingleはXMPPクライアント間でデータストリームの作成をネゴシエートするため、ポートは指定されませんが、実際のデータは、他の手段(RTPなど)によってそのストリームを介して(つまり、通常はXMPPサーバーを介してではなく)転送されます。帯域内転送が可能です)。Jingleは複数のXEPで構成されていることに注意してください。そのため、XMPP拡張機能のリスト全体を確認してください。