0

Netbeans を使用して、Java EE を使用してチャット Web アプリケーションを作成しています。jquery 関数を使用してサーブレットに接続し、データベースに接続して情報を取得します。たとえば、オンライン ユーザーのリストで DIV を更新することができました。秒。

 setInterval(function(){ 
    $.get('MyServlet', {
            roomId: roomToJoin
        }, function (responseText) { 

    //Some codes Here
    //responseText is returned as a chain of user names
    //they get separated using JavaScript codes and then appended in a div

    });  //Update the list of Online users each 5 secondes

    },5000);

しかし、ユーザーが書いたメッセージを更新するために同じ手法を実行することは、ちょっと難しいですが、可能ですが、検索中に見つけたよりスマートな手法は、Comet 手法、リバース ajax、または long polling であり、私が見つけた唯一の例です。はカウンターの例で、ウェブ全体にありますが、私は本当に理解していませんでしたし、要件を満たしていません。これに対する良いアプローチが何であるかわかりません。メッセージを保存する必要があるかどうかもわかりませんこれはチャットアプリのコアであるため、残りは簡単です。

4

1 に答える 1

0

Web ベースのリアルタイム チャットルームを構築するのは簡単なことではありません。特に、Ajax/Comet の技術的な問題に対処するのは困難です。EZComet (私は創設者です)、PusherPubnubなどのメッセージ プッシュ クラウド サービスを使用できます。ここで非常に単純なチャットルームの例を参照できます

JavaScript クライアントでメッセージを受信するには、次のように JS API を呼び出すことができます。新しいメッセージを受信すると、コールバック関数が呼び出され、メッセージの表示、ユーザー リストの更新など、対応する対応を行うことができます。

ez_comet.subscribe({
    user_name: 'demo', 
    channel: 'chatroom', 
    callback: callback,
    auto_tick: false,
    msg_type: 'json'
});

チャットルーム メッセージを送信するには、API を介してチャネルにメッセージをプッシュできます。PHP での例

<?php

// Include ezcomet PHP SDK, it can be found here 
// https://ezcomet.com/tools/php_sdk
include 'ezcomet.php';

$username = $_POST['username'];
$message = $_POST['message'];
$msg = array(
    'username' => $username,
    'message' => $message
);

$tick = push_msg('your api key', 'demo', 'chatroom', @json_encode($msg));
echo "tick: $tick";

?>
于 2012-08-12T15:37:35.730 に答える