server
私のWebアプリでは、クライアントは同時に両方client
です。ピア ツー ピア アプリケーションと同様に、クライアントが Web アプリケーションを開始した後、最初に行われることは次のとおりです。インターネット接続が利用可能かどうかを確認します(jsp ページが読み込まれるため)。接続が利用可能な場合、ノード情報がリモート データベースに送信されます。これは、メイン サーバーに接続されているノードのアドレスを知るためのものです。
ここで、ノードがサーバーから切断された場合(インターネット接続の障害などにより)、ノードの情報をデータベースから削除したいと考えています。
これを実装する 1 つの方法は、データベース内のすべてのノードへの接続を試行し続けるメイン サーバーでスレッドを開始することです。しかし、私はこのオプションに満足していません。別の方法があるかもしれません。または、これをより良い方法で実装できるかもしれません。
どうすればいいですか?
そして、メイン サーバーでスレッドを開始する必要があります。jsp ページからスレッド関数を呼び出しますか? お気に入り :
<%-- This is a jsp page --%>
.....
........
<%-- start a new thread that does that task --%>
<% new ThreadClass().startContinuousThread(); %>
......
.........
注:各ノードは次のように中央サーバーに接続します。
final URL url = new URL("http://sevrer/servlet");
final HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
int responseCode = urlc.getResponseCode();
if(responseCode == 200){
connected = true;
System.out.println("Initial connection to the server successful");
}
// send the node information to the servlet via a 'parameterized query'.