2010-12-29 17 views
1

私はPHPの& MySQLとかなり基本的なAJAXチャットを行いました。チャットメッセージはMySQLデータベースに保存され、新しいメッセージがないかどうかを確認するために数秒ごとにポーリングを行います。AJAXライブチャットでチャットモデレーションを実装する方法は?

帯域幅と更新時間を抑えるために、最初の要求ですべてのメッセージが返され、その後の各要求では最後のIDよりも大きなIDのメッセージのみが返されるように設定しましたこれらの新しいメッセージをチャットの下部に追加し、古いメッセージを上部に表示しないようにして、常にチャットを150のメッセージに設定します。

これは素晴らしいですが、致命的な欠陥が1つあります。チャットメッセージが司会者によって削除されると、ページをリロードしない限り、チャットメッセージはチャット画面から削除されません。メッセージを削除できるようにシステムを変更するか、これが機能するように私のアプローチを変更するにはどうすればよいですか?

答えて

0

削除されたIDを何らかの形で追跡することができます。データベース内でそれらを削除するか、本当にレコードを削除する必要がある場合は、削除されたメッセージのIDを追跡してください。次に、削除したIDをリストするAJAXレスポンスに新しいセクションを追加します。

クライアントはメッセージの履歴を調べ、対応するエントリを削除できます。チャット履歴のメッセージにメッセージIDを添付していると仮定すると、これは比較的簡単な操作です。

関連する問題