jQuery/AJAX、PHP、および mySQL を使用して、チャット ベースのモバイル アプリケーションを構築しようとしています。新しいチャット メッセージが到着したかどうかを確認するために、クライアント モバイル デバイスがサーバー上の PHP スクリプトを毎秒ポーリングする必要がないようにしたいので、AJAX を使用した「ロング ポーリング」パラダイムを使用して、接続をより長く開いたままにし、より多くのプッシュ スタイルのアーキテクチャを実現します。以下は、サーバー上の PHP コードです。
$newMessage = CheckForNewMessage();
while ($newMessage == NULL) {
usleep(10000);
$newMessage = CheckForNewMessage();
}
$response = array();
$response['msg'] = $newMessage;
echo json_encode($response);
ただし、書かれているように、この PHP コードはかなり定期的に mySQL DBMS をポーリングします (依然としてプル パラダイムです)。この接続 (つまり、Web 層とデータ層の間) でプッシュ パラダイムを実現する方法があるかどうか疑問に思っています。新しいメッセージがテーブルに追加されたときにトリガーを使用できますか、またはこれを達成するために同様のものを使用できますか? これを行った経験のある人はいますか?ポインタやアイデアをいただければ幸いです。