常にチェックするには、javascriptajaxとjsonおよびコールバック関数が必要です。プッシュサービスで実行できますが、PHPはそれが悪く、websockestなどが必要です。facebookはタイムアウト呼び出しを使用します。スタックオーバーフローがわからない
refreshInterval = 500
refreshTimeout = setTimeout( getNotificationCounts, refreshInterval );
function getNotifications() {
$.ajax({
url : 'path_to_your_php',
type : 'POST',
data: //put for exampel user_id but it cvan be handled by sesion as well
dataType : 'json',
success : function(data) {
alert('You have'+ data.total +' new messages')
refreshTimeout = setTimeout( getNotificationCounts, refreshInterval ); //this will check every half of second
}
});
}
次に、PHPでは、たとえば、データベースにフラグがあり、データがdatabseにとって新しいかどうかをチェックします。フォーマットに注意し、適切なSQLエスケープする
$result=mysql_query("SELECT count(*) as total from myTable where user_id=$_POST['user_id'] AND is_read=0");
//note instad of $_POST you can use session if users are logged in, or however you are handling it
$data=mysql_fetch_assoc($result);
echo json_encode($data)
;
その後、ユーザーがメッセージをクリックするとメッセージを既読としてマークする別のajax呼び出しを作成できます。またはダイアログリストまたはwahteverを開きます
mysql_query("UPDATE myTable WHERE user_id=$_POST['user_id'] SET is_read=1");