2

スケールアップ中のチャット クライアント サーバー アプリケーションがあります。そのため、2 つのチャット サーバー間でサーバー間通信を行う必要があります。

問題は次のとおりです。2つのサーバーAとBがあるとします。ここで、クライアントC1がサーバーAに接続されたTCPであり、クライアントc2がサーバーBに接続されたTCPであるとします。問題は、同じアプリケーションとして、クライアントC1とc2がそれぞれを識別できる必要があることです。その他はログインしてオンラインで利用できますが、サーバー間通信がないため発生していません。

考えられる解決策 1 は次のとおりです。TCP 接続を使用して、サーバー A とサーバー B を相互にログインします。ここでは、ログイン XML メッセージ (文字列) と DataInputStream を TCP 接続を介して他のサーバーに転送できます。したがって、すべてのクライアントが各サーバーにアクセスできるように、すべてのログインが他のサーバーに転送され、クライアント C1 はクライアント C2 をログイン (オンライン) として見ることができ、その逆も同様です。

解決策 1 の問題点: クライアント C1 がクライアント C2 をオンラインで利用可能として認識し、クライアント C1 がクライアント C2 にメッセージを送信するとします。サーバーAは、サーバーAではなくサーバーBで確立されたクライアントC2のDatainputStreamに書き込もうとします。コードがここで壊れ、サーバーAがクライアントC2にメッセージを送信できないという問題があります。 .

任意の入力をいただければ幸いです。

ありがとう

4

1 に答える 1

3

IRC サーバーがそのような種類の機能をどのように実装しているかを調べることができます。サーバーをクライアントとして処理し、具体的なユーザーを見つけるためにそれらに要求する別のサーバーを作成するだけでよいと思います。

https://www.rfc-editor.org/rfc/rfc2810

于 2012-04-17T08:10:01.337 に答える