我正在编写一个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 是我编写的一个函数,用于设置所有事件处理程序。
我是一名优秀的程序员,十分优秀!