0

私はチャットアプリケーションを開発しようとしていますが、他のユーザーがアクティブかどうかを知る必要があります.「タイムスタンプ」の例(最後のアクティビティが指定された時間を超えている場合、ユーザーをオフラインと見なします)と問題この方法は、このコードを JavaScript を使用して一定の間隔で繰り返し実行する必要があることです。

したがって、セッションIDを知ることで、サーバーでセッションがアクティブかどうかを確認する方法があるかどうかを考えていました。これが可能であれば、MYSQLテーブルに「最後のセッションID」の追加の列を作成しています。メッセージを送信するたびにアクティブかクローズかを確認し、相手がアクティブかどうかを確認できます。

4

2 に答える 2

0

これは、ajax と php で作成できます。

したがって、javascript で setInterval を設定する必要があります。

setInterval(function() {
 $.ajax({
 url: 'ajax.php',
 params:{
  action:'checkSessionTime'  
 },
  success: function(response) {
   var resp = JSON.parse(response.responseText);
   if(resp.state != 'valid')
   {
  location.reload();
    }
 }
  });
  }, 1000 * 60* 10);

PHP では、次のような関数があります。

function checkSessionTime(){
if($_SESSION['YourSessionId oder YourUserId']){
 echo json_encode(array('success' => true, 'state' => 'valid'));
}else{
echo json_encode(array('success' => true, 'state' => 'expired'));
}

}

于 2013-09-27T10:46:27.917 に答える
0

サーバー上のセッションに関する情報を保持するファイルを確認する必要があります->しかし、それは良い考えではありません。私の意見では、より良い方法は、デフォルトのセッションシステムを書き直して、それらをデータベースで処理することです (session_id、last_action、expire_date を保持します)。この時点から、あなたの仕事を達成するのは簡単でしょう。

于 2013-09-27T10:43:15.930 に答える