2009-05-04 9 views
0

私はtomcatをWebサーバーとjava swingアプリケーションとして使用するアプリケーションを開発中です。 Webサービスを介してWebサーバーと通信するためのクライアントとしてのみ使用できます。Tomcatのアップデートイベント

私は何らかの形でサーバー側で発生した何らかの更新イベントをクライアントに通知する必要がある状況に陥っています。リバース・アヤックスなどのようなもの。

任意のアイデア...

アブドゥル・ハリク

答えて

0

最も一般的な方法は、サーバーをポーリングするためにあなたのクライアントになります。これは、定期的にサーバーに新しいイベントを要求する要求を発行することを意味します。これにより、イベントの出現とクライアントへの通知との間に遅延が生じます。

もう1つの方法は、クライアントからHTTP要求を発行し、イベントが表示されるまで開いたままにしておくことです。このように、通知はイベントの直後に到着します。イベントが報告されると、別の要求を発行します。このアプローチには、サーバーがいつでもサーバーできるサーバーの数が大幅に制限されるという欠点があります。 Tomcatのスレッドのデフォルト値は150です。すべてのHTTP要求に対して1つのスレッドが必要なため、150以上のオープン要求を持つことはできません。

+0

新しいTomcatには、スレッドを浪費することなく、長いポーリングをはるかに効率的に処理するコメントのサポートがあります。 –

+0

どのバージョンのTomcatを参照していますか?詳しい情報はどこにありますか? – kgiannakakis

+0

ポーリングスレッド(EDTではない)は、SwingUtilities.invokeLater()またはinvokeAndWait()を介してGUIにフィードバックする必要があります。 – jfpoilpret