0

ソーシャル ネットワーク タイプの取引を作成しており、チャット機能を追加したいと考えています。

現在、友人リストを持つ home.php があります。友人リストは、次のように jQuery と PHP を介して読み込まれます。

function LoadList() {
    $.get("friends_feed.php",
        function (data) {
            $('div#friendsfeed').html(data);
        }
    );
}

リストに読み込まれる友人ごとに、名前をクリックすると、画面の下部に固定される div が作成され、この div がチャット ボックスになるようにしたいと考えています。PHPとAjaxを介して簡単にロードできることを望んでいます。これにアプローチする方法は?

編集: チャットは 2 人の間だけにしたいです。ユーザーとその友人。

4

1 に答える 1

3

好きなようにチャット システムを作成するのはそれほど難しくありませんが、自分が何をしているのかを知る必要があります。最初に、ユーザーをクリックしたときにチャットを最初にロードするファイルが必要です。

チャットをロード

function loadChat (userid) {
    $.get("/ajax/getChat.php", {
        userid: userid
    }, function (data) {
        //add the chat
    });
}

次に、新しいメッセージを受信できるように、チャットを ping できる必要があります。Web ソケットまたはより簡単な方法であるserver-sent eventsを使用することをお勧めします。投票はお勧めしません。

ピンチャット

サーバー送信イベントは次のようになります。

var pinger = new EventSource("/ajax/pingMessages/" + userid);
pinger.onmessage = function (data) {
    data = data.data;
    // append messages
};

SSE は AJAX を使用したポーリングよりもサポートが少ないですが、より適切に機能し、サーバーとのオープンな接続を維持できるため、最終的にリソースを節約できます。SSE 用のポリゴン フィルがいくつかありますので、チェックしてみてください。

送信機能も必要です。

メッセージを送る

function send (userid) {
    $.post("/ajax/send.php", {
        userid: userid,
        message: $.trim($('.chat[data-id*="'+ userid +'"] input[type="text"]').val())
    });
}

これらのリクエストはすべて、userid. サーバー側では、現在のユーザー ID を考慮することができます。

メッセージ用に 1 つのテーブルをセットアップする必要があります。会話にユニークさを与えて、idそこから始めましょう。実際の JavaScript よりもサーバー エンドで多くのことを行う必要があります。

サーバー送信イベントと AJAX を使用する前に、チャットを作成しました。ロジックのほとんどはサーバー側にありました。

これが役に立ったかどうかはわかりませんが、これで少しはわかると思います。

于 2013-07-20T01:43:03.730 に答える