ruby-on-rails - 如何在 Rails 中提供 socket.io 客户端文件

标签 ruby-on-rails ruby-on-rails-3 node.js socket.io

我正在编写一个rails应用程序,我想使用node.js和socket.io将聊天功能集成到我的应用程序中。我计划将我的 Rails 应用程序部署在一台服务器上,并将我的聊天部署在一台小得多的服务器上(以省钱)。我的理由是,如果一条聊天消息需要 30 秒才能发送,但页面需要 30 秒才能加载,那就不行了。

无论如何,为了让它工作,我需要 Rails 来服务 socket.io 客户端文件。如果我的小型 Node 服务器为客户端文件提供服务,那么小型服务器将成为大型服务器的瓶颈。我已经启动并运行了一个基本的聊天原型(prototype),但它仅适用于为客户端文件提供服务的 Node 。我需要做什么才能让 Rails 为客户端文件提供服务?

提前致谢。

最佳答案

所以这是我决定的解决方案。我决定让 Node 服务器处理客户端 javascript,而不是弄清楚我需要提供哪些客户端文件。为了确保 Node 服务器不会成为 Rails 服务器的瓶颈,我延迟加载了 socket.io-client 文件。相关的 CoffeeScript 是:

$ ->
    $.getScript('http://localhost:8080/socket.io/socket.io.js')
    .done (script, textStatus) ->
        socket = io.connect('http://localhost:8080')
        setupSocket(socket)

哪里http://localhost:8080是您的 Node 主机/端口。 setupSocket 是我编写的一个函数,用于设置所有事件处理程序。

关于ruby-on-rails - 如何在 Rails 中提供 socket.io 客户端文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10343985/

相关文章:

ruby - Rails 3 中的 link_to t() 是什么?

javascript - 如何识别以下代码模式

ruby-on-rails - RoR : has_one "or the other"?(或者,没有继承的多态性。)

ruby-on-rails - 可以跳过对 update_attributes 的验证吗?

ruby-on-rails - 如何使用 ahoy 跟踪帖子的浏览量?

node.js - 如何将 Angular 2 应用程序与 .net core 连接

node.js - MongoDB 返回空数组

ruby-on-rails - 有没有办法从Searchkick的查询中排除单词?

ruby-on-rails-3 - 使用 devise 登录且 mobile_fu 无法正确重定向

ruby-on-rails - has_many和:after_add/:before_add => callback for << and create methods