我已經爲我的客戶的網站構建聊天腳本。一旦用戶登錄,我設置會話,並通過將聊天狀態設置爲1來更新數據庫中的表。一旦用戶註銷,我將聊天狀態設置爲0,此外,如果用戶關閉瀏覽器的選項卡聊天狀態設置爲0,不再發生聊天。PHP聊天會話
這裏的主要問題是如果用戶的計算機關閉或電源被切斷,如何檢測用戶不能聊天。或者即使用戶打開一個新標籤,而不是關閉標籤,他關閉了瀏覽器?
我被卡住了。預先感謝您
我已經爲我的客戶的網站構建聊天腳本。一旦用戶登錄,我設置會話,並通過將聊天狀態設置爲1來更新數據庫中的表。一旦用戶註銷,我將聊天狀態設置爲0,此外,如果用戶關閉瀏覽器的選項卡聊天狀態設置爲0,不再發生聊天。PHP聊天會話
這裏的主要問題是如果用戶的計算機關閉或電源被切斷,如何檢測用戶不能聊天。或者即使用戶打開一個新標籤,而不是關閉標籤,他關閉了瀏覽器?
我被卡住了。預先感謝您
或多或少什麼jhonraymos說過。如果這是一個基於PHP的聊天,那麼您無法真正說出連接強制關閉時的情況。簡單地說,有一種方法可以讓聊天超時,我想說。
IE:如果客戶端沒有幾分鐘或幾小時的請求,那麼可以安全地認爲它們不再連接,然後可以將聊天狀態設置爲0。
更新:
道歉,我還沒有看到您的新評論。看另一頁...
session_start();
// set timeout period in seconds
$inactive = 600;
// check to see if $_SESSION['timeout'] is set
if(isset($_SESSION['timeout'])) {
$session_life = time() - $_SESSION['timeout'];
if($session_life > $inactive)
{ session_destroy(); header("Location: logoutpage.php"); }
}
$_SESSION['timeout'] = time();
再次道歉,仍然習慣了stackoverflow。
只需使用phpmyadmin在MYSQL中創建一個事件,每1分鐘創建一個狀態= 0(更新login_table set status ='0')。
然後使SetInterval每30秒更新狀態= 1。
再拍的setInterval檢查狀態= 1,並檢索所有DIV(這將顯示在線用戶。
修復了這個意見顯得有點俗氣,再次抱歉。(剛剛殺青前一個答案的通知) – Greyull
這就是我想問的問題,我們如何在時間限制後執行一些代碼?我的意思是如何執行我的查詢以將時間限制後的聊天狀態設置爲0?可以給我一個例子...好吧我看到你評論以上...檢查它 – Anwar
上面的代碼是否適用於諸如互聯網連接丟失,電源關閉等問題? – Anwar