私たちが知るようになる方法/方法はありますか、目的のテーブルに変更が加えられますか?
30 秒ごとにデータベースをチェックする 1 つのソリューションを実装しました。つまり、チャット テーブルで変更が発生した場合は、チャット リストを更新します。多くのパフォーマンスを低下させ、サイトの速度を低下させます。
テーブルに行が挿入されるたびにアクションリスナーが呼び出す方法はありますか?
何か案が?
通知(過去2時間程度の未読メッセージのみが常に含まれる)を含むテーブルを作成してから、変更が発生するたびに新しい通知を作成するトリガー[構文]を作成できます。
CREATE TRIGGER create_notification AFTER INSERT ON chats
FOR EACH ROW INSERT INTO notifications (...) VALUES( NEW.col1, NEW.col2)...
そうすると、データベーステーブルがはるかに小さく(そして高速に)なります。
ソケットサーバーを作成するなどの代替手段がいくつかありますが、データベースをプールするよりもリソース効率が低いと思います。さらに、PHPスクリプトを長時間実行した経験がありません。
あなたのシナリオでは、チャットの新しい行がデータベースに挿入された瞬間を追跡するリスナーが必要です。
データベースに挿入する前にユーザーにチャット メッセージを送信すると、簡単になります。
ソケットを使用できます。nodejs+socket.io を使用してこれを実行できます。これについて少し説明します
特定のクライアントにメッセージを送信するための socket.io および node.js
こちらの記事もご覧いただけます
https://www.flynsarmy.com/2012/02/php-websocket-chat-application-2-0