Javascript 在RubyonRails3应用程序中查看站点上的当前在线用户并与之交谈

Javascript 在RubyonRails3应用程序中查看站点上的当前在线用户并与之交谈,javascript,jquery,ruby-on-rails,ruby-on-rails-3,faye,Javascript,Jquery,Ruby On Rails,Ruby On Rails 3,Faye,我有一个RubyonRails3应用程序,我希望能够看到当前在线用户的列表。例如user1、IP地址和国家/地区。然后,我希望能够打开聊天室/向该用户推送消息,直到他们离开我的网站 我如何才能准确地监控当前在站点上的用户,并在用户离开时立即将其从列表中删除 然后我可以通过faye pub/sub与他们交谈。我认为这与Ruby on Rails没有太大关系。。。但这很难仅用脚本语言在HTTP中实现。服务器不知道用户是否已关闭浏览器。服务器只是将请求的页面数据发送给用户并关闭连接 您宁愿集成Ajax

我有一个RubyonRails3应用程序,我希望能够看到当前在线用户的列表。例如user1、IP地址和国家/地区。然后,我希望能够打开聊天室/向该用户推送消息,直到他们离开我的网站

我如何才能准确地监控当前在站点上的用户,并在用户离开时立即将其从列表中删除


然后我可以通过faye pub/sub与他们交谈。

我认为这与Ruby on Rails没有太大关系。。。但这很难仅用脚本语言在HTTP中实现。服务器不知道用户是否已关闭浏览器。服务器只是将请求的页面数据发送给用户并关闭连接

您宁愿集成Ajax或Flash来简化工作。我见过一些人用Flash开发聊天程序,它似乎比任何其他Ajax实现的聊天程序都好

聊天在网络浏览环境中非常不利,因为当用户单击链接时,页面将被重新加载。如果您正在考虑构建一个只支持聊天功能的应用程序,那么您可能想看看RubyonRails以外的其他应用程序。例如,这将是一个很好的例子

我如何才能准确地监控谁目前在网站上,并在他们离开时立即从列表中删除

使用HTTP,您不能在浏览器中“立即”执行此操作。我看到的几乎所有解决方案都使用心跳技术。每隔X秒,浏览器就会发送一个请求(使用Ajax),告知用户是否在线。如果你在x心跳中没有收到该用户的消息,你会认为该用户是断开连接的,甚至Facebook也会使用这种方式。我建议你立即放弃你的要求,除非这真的很重要


另一种方法是实现Flash或Silverlight,以便与服务器建立套接字连接。但是对服务器的要求很高,如果您的站点上有很多人,您将在端口等方面遇到麻烦。

没有真正回答这个问题。我如何才能准确地监控谁目前在网站上,并在他们离开时立即从列表中删除?我可以和费伊聊天,没问题。无论如何,谢谢。你不能“立即”这样做的原因是HTTP(S)是无状态的。因此,在任何给定时刻,服务器只能知道来自任何给定客户机的最后一个请求。这是正确的解决方案。什么是“faye酒吧/酒吧”?