如何在rails中提供socket.io客户端文件

我正在写一个rails应用程序,并且我想使用node.js和socket.io将聊天function集成到我的应用程序中。 我打算让我的Rails应用程序部署在一台服务器上,而我的聊天部署在一个更小的服务器上(为了省钱)。 我的推理是,如果一个聊天消息需要30s发送,那么确定是可以的,但是一个页面需要30s加载是不行的。

无论如何,为了这个工作,我需要Rails来服务于socket.io客户端文件。 如果我的小型节点服务器提供客户端文件,那么小型服务器将会阻碍较大的服务器。 我有一个基本的聊天原型启动并运行,但它只适用于服务于客户端文件的节点。 为了让rails提供客户端文件,我需要做些什么?

先谢谢了。

所以这是我决定的解决scheme。 我决定让Node服务器处理客户端的javascript,而不是搞清楚我需要提供哪些客户端文件。 为了确保Node服务器不会瓶颈Rails服务器,我懒加载了socket.io-client文件。 相关的咖啡脚本是:

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

其中http:// localhost:8080是您的节点主机/端口。 setupSocket是我写的一个函数,可以处理设置所有的事件处理程序。

很可能你遇到了“同源政策”的限制。 (检查您的控制台日志)您的主页是从RoR主机下载的,因此您的脚本只能启动到该主机的连接。

换句话说,这可能是不可能的。