3

私の仕事は、社内外のスタッフ向けの Messenger プログラムを作成することで、実際に作成しました。ただし、クライアント ソフトウェアを使用して "check-mesg" をサーバーから保持することは、実際には良い方法ではないと思います。つまり、IM プログラムをシミュレートしているだけだと思います。

クライアントアプリをリッスンサーバーにし、メインサーバーで「メッセージセンター」なしでユーザーがp2p通信できるようにしたい(オフラインメッセージが発生しない限り)。問題は、ルーターの背後にいるときに、外部ユーザー (他のクライアント アプリ) に自分の場所をどのように伝えるかということです。

それらの他の IM プログラムもクライアント マシン上でサーバーとして実行されていますか? そして、彼らはどのように乗り越えますか?

前もって感謝します!

4

1 に答える 1

1

ルーターの背後にあるシステムに接続するのは非常に複雑で、常に可能であるとは限りません。UDP でこれを行うための十分に文書化された方法は、STUN プロトコルです(主にSIPベースの VoIP に使用されます)。ルーターの背後に入ることができない場合は、オープン ネットワーク内のサーバーを仲介者として使用することしかできません (一部の P2P システムは、適切に接続されたピアをそのような仲介者に昇格させます)。SIP は仲介プロトコルとしてTURNを使用します。クライアントに適したソリューションを見つけるための SIP のプロトコルはICEです。

NAT トラバーサルも参照してください。

于 2010-05-25T08:42:02.937 に答える