2011-08-16 56 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