在Ruby on Rails 3应用程序中查看并与您网站上当前的在线用户交谈
See and talk to your currently online users on your site in a Ruby on Rails 3 application
我有一个Ruby on Rails 3应用程序,我希望能够看到当前在线的列表。例如user1、IP地址和国家。然后我希望能够打开聊天/推送消息给这个用户,直到他们离开我的网站。
我如何准确地监控谁是目前在网站上,并立即从列表中删除用户时,他们离开?
然后我可以通过faye pub/sub与他们交谈。
我怎样才能准确地监控谁是目前在网站上,并立即从名单中删除,当他们离开?
使用HTTP,你不能"立即"做到这一点。在浏览器中。我看到的几乎所有解决方案都使用了心跳技术。每隔X秒,浏览器(使用Ajax)发送一个请求,告知用户是否在线。如果你在x个心跳周期内没有收到用户的消息,你就会认为该用户已失去联系——似乎连Facebook都这样做。我建议你立即放弃你的要求,除非事情真的很重要。
另一种方法是实现Flash或Silverlight,建立到服务器的套接字连接。但是对服务器的需求很高,如果很多人访问您的站点,您将遇到端口等问题。
我认为这与Ruby on Rails关系不大…但这是很难实现在HTTP仅使用脚本语言。服务器不知道用户是否关闭了浏览器。服务器将请求的页面数据发送给用户,并关闭连接。
您宁愿集成Ajax或Flash来使事情更容易。我见过一些人用Flash开发聊天程序,它似乎比任何其他ajax实现的聊天程序都要好得多。
聊天在网页浏览环境中是非常不利的,因为当用户点击链接时页面将被重新加载。如果您正在考虑构建一个只支持聊天功能的应用程序,那么您可能想看看Ruby on Rails之外的东西。例如,Node.js就是一个很好的选择。
相关文章:
- 如何识别我的网站中的慢速设备
- 用Javascript更改我网站上的字体大小
- 有任何可能将facebook实时信使整合到一个网站中
- 将电视直播频道从网站嵌入我的网站
- Windows 8固定的网站互动程序
- 门户网站:当地时间有多有用
- 正在删除node.js中已验证的网站
- 为什么在这个网站上不能通过JS访问元素
- 需要使用谷歌应用程序脚本列出谷歌域下的所有网站
- 为什么只有工厂在棱角分明的网站上被提及
- 如何与特定ID交谈
- 从应用程序脚本检查谷歌网站访问权限
- 使用谷歌网站翻译器自动翻译网页
- 使用node.js制作网站
- 谷歌如何确定网站加载时间
- 带有url的单页网站导航
- Ajaxify Wordpress网站与社交插件
- 为什么可以't Protractor在自动初始化的Angular网站上查找Angular
- 在我的网站上显示最近提交的文章/图片
- 在Ruby on Rails 3应用程序中查看并与您网站上当前的在线用户交谈