Rails 3.1 在 Ubuntu 11.10 上使用 Socket.io/Juggernaut

Posted

技术标签:

【中文标题】Rails 3.1 在 Ubuntu 11.10 上使用 Socket.io/Juggernaut【英文标题】:Rails 3.1 working with Socket.io/Juggernaut on Ubuntu 11.10 【发布时间】:2012-01-07 04:03:28 【问题描述】:

我无法让 Juggernaut/Socket.IO 在 Windows 上运行,所以我尝试让它在 Linux 上运行。我不太了解Linux(或Rails)。我无法让 Socket.io/Juggernaut 在我的 Rails 服务器上工作。它在 OS X 上运行良好(所以我知道它在运行)。

安装完所有东西后,我执行以下操作:

/rails/app/path/rails s
redis-server
juggernaut # output is: info  - socket.io started

所以我猜这行得通。现在,当我运行一个使用 Juggernaut 的窗口时,我在 Chrome javascript 控制台中收到以下错误:

XMLHttpRequest cannot load http://localhost:8080/socket.io/xhr-polling//1322359666443. Origin http://localhost:3000 is not allowed by Access-Control-Allow-Origin.
Resource interpreted as Script but transferred with MIME type text/plain.
Uncaught SyntaxError: Unexpected identifier

软件信息:

Ubuntu 11.10 Ruby 1.9.2 Rails 3.1.1 NodeJS 0.4.9 NPM 0.2.19 Socket.IO v?.? (我今天刚刚运行 npm install socket.io) 剑圣诉?.? (我今天刚刚运行 npm install juggernaut) 在 Firefox 和 Chrome 中测试

【问题讨论】:

【参考方案1】:

这看起来像是一个 CORS 问题,浏览器不允许 AJAX 请求到另一个源(在本例中为端口 8080)。

您可能需要在 Socket.IO 中设置 CORS 标头。

我找到了这个答案:https://***.com/a/10423354/351937

要了解有关 CORS 的更多信息,请查看此处:http://enable-cors.org/,当然还有 Google。

【讨论】:

以上是关于Rails 3.1 在 Ubuntu 11.10 上使用 Socket.io/Juggernaut的主要内容,如果未能解决你的问题,请参考以下文章

在VirtualBox4.1.10安装了Ubuntu 11.10,怎么实现Ubuntu 11.10与主机上的文件共享?

ubuntu11.10怎样关机啊

在 ubuntu 11.10 上安装 GCC 4.3.4 时出错

如何在Ubuntu 11.10 下安装KScope

在 Django 中为 ubuntu 11.10 设置 Postgresql 9.1 数据库

在 Ubuntu 11.10 中使用 gcc 链接错误