ホームページ >バックエンド開発 >PHPチュートリアル >チャット記録の保存方法について質問です。

チャット記録の保存方法について質問です。

WBOY
WBOYオリジナル
2016-06-23 14:18:002956ブラウズ

背景は次のとおりです: WEB チャット プログラム、主な機能の 1 つはオンライン パーティ間のリアルタイム チャットですが、このチャット記録は最終的に保存されません。2 つのパーティがチャットしているとき、つまり、オンライン パーティがチャットする前にのみ保存されます。チャット ウィンドウが閉じられています。チャット レコードを一時的に保存します。私の初期設計では、最新の 300 件のレコードを一時的に保存します。

そこで質問は、最大 300 項目の一時的なチャット記録をどこに保存すればよいのか、そしてそれらを保存する最良の方法は何なのかということです。それを一時ファイルとしてローカルに保存するか、フロントエンド JS メモリに保存するか、それとも継続的に挿入、削除、更新するための MYSQL データ テーブルを構築する必要がありますか?それともMCやSESSIONなどのメモリに保存しますか?それとも他にもっと良い解決策があるのでしょうか?

このチャット レコードは、双方のチャット ウィンドウが閉じていない場合、現在のチャットの内容を一時的に表示するだけであることに注意してください。チャット ウィンドウが閉じられるか、チャットが終了すると、このチャット レコードは必要なくなります。


ディスカッションに返信(解決策)

プライベートチャット?
存在するかどうかは問題ではありません
1. js、Cookie、およびセッションの存在に関する問題は、両方の当事者がそれらを保存する必要があることです
2. Memcache の存在に関する問題は、サードパーティのソフトウェアが必要であることです
3. ファイルはありますが、問題は 1 対 1 が多すぎることです。ファイル システム管理の問題が発生します。
3. 既存のデータベースを第一選択にする必要があり、mysql のメモリ テーブルは非常に大きいです。早い

プライベートチャット?
存在するかどうかは問題ではありません
1. js、Cookie、およびセッションの存在に関する問題は、両方の当事者がそれらを保存する必要があることです
2. Memcache の存在に関する問題は、サードパーティのソフトウェアが必要であることです
3. ファイルはありますが、問題は 1 対 1 が多すぎることです。ファイル システム管理の問題が発生します。
3. 既存のデータベースを第一選択にする必要があり、mysql のメモリ テーブルは非常に大きいです。速いです

xu、mysql メモリ テーブルと redis の比較を教えてください。これまでに mysql メモリ テーブルを使用したことがありません。アドバイスをお願いします。見てみましょう

redis はキー値データベースであり、mysql はリレーショナル データベースです。 2 つはまったく異なるものであり、比較することはできません

redis にはサードパーティのサーバーと拡張機能のインストールが必要です。当然、対応するphpコードも異なります
mysqlメモリテーブルは記憶媒体が異なるだけで、操作方法は他のテーブルと変わりません。 php の観点から見ると、これは単なるテーブル名の変更です。

redis はキーと値のデータベースであり、mysql はリレーショナル データベースです。 2 つはまったく異なるものであり、比較することはできません

redis にはサードパーティのサーバーと拡張機能のインストールが必要です。当然、対応するphpコードも異なります
mysqlメモリテーブルは記憶媒体が異なるだけで、操作方法は他のテーブルと変わりません。 PHP の観点から見ると、これはテーブル名の変更にすぎません

メモリ テーブルには varchar または text フィールドを保存できませんか?

はい、テキスト フィールドは保存できませんが、varchar 型の長さは制限されません

はい、テキスト フィールドは保存できませんが、varchar 型の長さは制限されません

つまり。 、テキストレコードを保存するために使用する場合、使用できるのは varchar のみです。どのくらいの長さが適切ですか?

チャットはどれくらい長くできますか?ただ大騒ぎしているだけだと思いますか?
Weibo は 140 文字に制限されています

チャットの長さはどのくらいですか?ただ大騒ぎしているだけだと思いますか?
Weibo は 140 文字に制限されています

モデレーター、Sina SAE で試してみますが、ajax ロングポーリングを使用して実装できると思いますか?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。