2011-03-20 25 views
0

我已經決定創建一個基於Web的聊天系統的經驗。我正在使用AJAX(jQuery),PHP和JSON的混合來傳輸數據。現在我開始思考某些事情了,我已經開始思考。創建一個基於Web的聊天系統的幾個問題

現在,我使用javascript將最後加載的消息ID發佈到查詢數據並在json中回顯新帖子的php文件中,然後在頁面上按順序顯示這些帖子。但是,這些日期並不反映用戶的當前時間。由於我使用PHP獲取當前時間,因此我不知道如何向用戶顯示考慮到他們的時區的正確時間。其次,我如何將這個方法的在線名單加入?我可以創建一個單獨的表並在用戶創建會話時更新它,並在會話結束時刪除它們的名稱;但如果他們沒有正確關閉呢?我是否應該將上次發送的消息添加到表中,並且如果距上次消息約5分鐘後才認爲用戶已斷開連接?最後,我用來收集新帖子的方法是否有效?有沒有更好的方法去做這件事?我很欣賞任何輸入。

回答

0

這似乎相關:Determine a User's Timezone

我打算讓你去那裏的代碼剪斷,所以你給予適當的信貸與upvotes。

我得到的印象是,Javascript是獲取該數據的最佳/最簡單的方式。

我可能會做的是使用格林威治標準時間或其他固定的時區爲您的所有服務器的東西,然後只是調整與js一旦它擊中瀏覽器根據他們的時區。無論是在會話開始時收集一次,還是相應地調整輸出。這兩種方式都可能有優勢。

編輯: 哦,是的,關於「誰在線」,我認爲你是在正確的方向前進。我可能會建議2個列表。 「誰在活躍」和「誰最近活躍」

這樣你可以在5分鐘後讓人處於不活動狀態,並且在10分鐘之後認爲他們已斷開連接。我想這是相同的,但對我來說似乎更準確。

另一種選擇是設置一個ajax請求,以便每分鐘左右自動觸發一個請求。當他們停止時,你知道用戶已經離開了。

+0

謝謝,我會給你建議的一個鏡頭。 – AllofHumanity 2011-03-20 04:24:44