コメット初心者です。
javaでコメットを使用してWebベースのチャットを実装する方法を誰か教えてもらえますか(JSP、サーブレットストラットなどのWebテクノロジー)..??
どんな助けでも大いに感謝します。
ありがとう。
コメット初心者です。
javaでコメットを使用してWebベースのチャットを実装する方法を誰か教えてもらえますか(JSP、サーブレットストラットなどのWebテクノロジー)..??
どんな助けでも大いに感謝します。
ありがとう。
Maven (Struts2 Web サイト) を使用して、基本的な Struts2 アプリケーションをセットアップします。
春のプラグインを追加します。
チャット メッセージのログを保持するサービス オブジェクトを作成します ( List<Map<int, String>>
)。メッセージが追加されるたびに、送信されたメッセージの前のインデックスよりも 1 大きいインデックスを持つ新しいマップがリストに追加されます。リストが特定のサイズに達した場合、最小のメッセージを削除して最大サイズを維持します。(これにはより良いデータ構造がありますが、それを理解することができます)。
Struts2-JSON プラグインを追加します。
2 つの json アクションを作成します (Struts2-JSON-plugin の使用方法を参照)。SendMessage および GetMessagesSince アクション。また、チャット ページを作成するための基本的なアクションも作成します (Conventions プラグインも使用します)。
SendMessage には、メッセージのセッターがあります。Status の getter を用意することをお勧めします (「成功」または「失敗」を返します)。
GetMessagesSince には、{int, Strings} のリストを返すメッセージのゲッターがあります。lastMessage(int) のセッターがあります。
次に WebPage です。この時点で、短いポーリング (短い休憩の後にループで呼び出す) を使用して、'lastMessage' (ゼロから開始) より大きいメッセージを取得します。jQuery マジックを使用すると、GetMessagesSince からの応答を取得できます (履歴があれば、チャット クライアントを開始します)。リストの最後のメッセージを使用して、GetMessagesSince の新しい値を取得します。
いくつかの同時実行マジックを使用すると、ロング ポーリングを実装できます。また、メッセージに日付を追加して、会話がどれくらい古いかを人々が知ることができるようにすることもできます。チャット キューのマップを作成することで、さまざまなメッセージ グループを追加することもできます。つまりMap<String, List<Map<int, String>>>
、この場合、チャット ルームを識別するために文字列を選択しました。
本気なら、デモを作成するかもしれません (思ったより簡単です)。