2016-11-17 50 views
0

假設我想爲用戶顯示此時有多少用戶在線(基本上有多少人正在觀看功能)的聊天室。如何在Rails和actioncable中爲網頁實現「立即觀看」功能

我想到的是對每個actioncable通道使用一些redis計數器,當客戶端連接或斷開連接到通道時遞增和遞減此計數器,然後我們開始工作,但是這種方法的問題是如果某些客戶端打開一個網頁,然後計數器會增加,如果服務器關閉了一段時間,並且客戶端關閉了網頁,那麼斷開的事件將不會被監聽,所以計數器不會被遞減其價值永遠是錯誤的。

我認爲如果我可以在服務器關閉的情況下捕獲事件,以便將所有這樣的redis計數器設置爲零,但是不知道如何捕獲此類事件(我使用的是帶有乘客的nginx) 。那麼有什麼幫助?

+0

爲什麼不只是設置到期的redis計數器,對於這個特定的問題? –

回答

0

知道服務器何時關閉並不容易,但知道服務器何時啓動總是很容易的。爲什麼不啓動服務器時重置這些計數器?在服務器的啓動腳本中添加重置操作。