Ale*_*lex 6 ajax ruby-on-rails comet heroku node.js
我正在尝试在rails电子商务应用程序上创建一个ruby,潜在客户将能够下订单,商店所有者将能够实时接收订单.最终订单将被记录到数据库中(当时是SQLite),并且店主将打开一个浏览器窗口,新订单将在订单完成后出现.(应用程序信息:我正在使用HOBO rails框架,并计划在Heroku中托管应用程序)
我现在正在考虑使用最好的技术来实现这一点,因为预计应用程序会有很多用户发送大量订单:
1)每个浏览器窗口每隔X分钟刷新一次页面,连续轮询服务器以获取新记录(新订单).当然,这会给服务器带来沉重的负担.
2)如上所述,但用某种AJAX框架轮询服务器.
3)使用某种服务器推送技术,如"彗星"异步消息传递.找到Juggernaut,唯一的问题是它使用Flash和自定义端口,这可能是一个问题,因为我的应用程序应该可以在企业防火墙和NAT后面访问.
4)我也在检查node.js框架,对于这种异步消息传递似乎是有效的,尽管Heroku不支持它.
哪种方法是实现此类功能的最有效方法?还有其他方法我没有想过吗?
感谢您的时间和帮助!
Node.js 可能是一个不错的选择——它速度快、喜欢实时并且有很好的 Comet 支持。唯一的缺点是您在解决方案中引入了另一种技术。用 tho 编程非常有趣,而且很多库都受到了 Rails 和 sinatra 的启发。
我知道heroku 运行node.js 测试版已经有一段时间了,人们使用它作为最近nodeknockout 竞赛的一部分。请参阅这篇博文。如果这不是一个选择,您绝对可以将其托管在其他地方。如果您将其托管在heroku,您也许能够代理请求。否则,您可以愉快地在子域中运行它,以便共享 cookie。
还可以查看socket.io。它在根据浏览器的功能选择执行 comet 的最佳方式方面做得非常出色。
要在节点和 Rails 之间共享数据,您可以共享 Cookie,然后将会话数据存储在两个应用程序都可以访问的数据库中。更复杂的架构可能涉及使用 Redis 在它们之间发布消息。或者,您也许可以在 http 请求中传递您需要的所有内容。
| 归档时间: |
|
| 查看次数: |
1439 次 |
| 最近记录: |