2011-08-16 40 views
3

Ruby中有監聽器嗎?我知道他們有JSP的會話監聽器,所以我想知道是否有類似的東西。最終,我想創建一個偵聽器來偵聽會話創建或銷燬時的情況,以便顯示當前有多少用戶在線的計數。Ruby on Rails監聽器

+0

您是否使用Rails或其他框架? – Daan

+0

嗨,大安。我使用Rails。 – Brian

回答

4

你不知道有多少用戶在網絡服務器上聯機,除非他們有一個永久的活動連接(例如像長輪詢,彗星的東西)。

最好的辦法是查看會話存儲並計算在最近X分鐘內處於活動狀態的用戶。

當用戶斷開連接時,偵聽器不能可靠地觸發。例如,使用「登錄」和「註銷」邏輯,您將無法獲得所有註銷操作,因爲互聯網連接可能會失敗,用戶可能忘記按註銷按鈕等等。

更新:對於Rails,請查看此論壇帖子:http://railsforum.com/viewtopic.php?id=18480,它將更詳細地解釋解決方案。

+0

感謝您的幫助。我閱讀這篇文章,似乎是一個簡單的解決方案。我會試試看。 – Brian

+0

祝你好運!順便說一句:你可以在Rails中有監聽器,當有事件要監聽時。請參閱ActiveRecord觀察器(http://api.rubyonrails.org/classes/ActiveRecord/Observer.html) – Daan

+1

Cool。我已經實施了該解決方案。似乎運作良好。再次感謝。 – Brian