ruby-on-rails - Rails 和 Socket.io (node.js)

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

我打算使用 Rails 应用来提供由 node.js 服务器和 Socket.io 处理的实时数据。

在 Socket.io 网站上,它说:

If you won't leverage Node.JS to serve your files, make sure to set the global WEB_SOCKET_SWF_LOCATION to the location of the WebSocketMain.swf file.

如果我使用 rails 来提供静态文件,这到底意味着什么?

此外,来自常见问题解答:

I want to host the Socket.IO client myself:

If you're not relying on Node.JS serving Socket.IO clientside JavaScript files, make sure you set the WEB_SOCKET_SWF_LOCATION right after including socket.io.js with the location of the WebSocketMain.swf This is required in order for Socket.IO to find the .swf file required for Flash WebSocket.

不过,我不太明白。

谢谢。

最佳答案

WebSocketMain.swf 文件用作基于 Flash 的套接字通信的一部分,这是当 WebSocket 传输不可用时的回退解决方案之一。这是一个静态文件,默认情况下由 socket.io 内部提供。但是,如果您打算使用 RoR 应用程序提供此文件,则应设置 WEB_SOCKET_SWF_LOCATION 以便 socket.io 能够找到 WebSocketMain.swf 文件并在后备情况下使用它。

例如,如果您正在运行独立的 socket.io 服务器,假设它在端口 8080 上运行并从那里提供文件。但是,如果您添加在端口 80 上运行的 RoR,并且您还想使用 RoR 提供 socket.io 静态文件,那么您应该指示 socket.io 关于 WebSocketMain.swf 文件的位置,因为 RoR 使用不同的端口或路径来服务它。

关于ruby-on-rails - Rails 和 Socket.io (node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5551322/

相关文章:

ruby-on-rails - 如何对非数据库支持的 ActiveModel 模型进行单元测试?

ruby-on-rails - 您如何跟踪用户当前从哪些终端登录?

ruby-on-rails - rails : printing a list to a view using Mechanize

node.js - Socket.IO 在 IE 中使用 XHR 轮询

mysql - 用于将实时 (MySQL) 数据库加载到本地开发数据库的 Rails rake 任务

ruby-on-rails - 是否可以使用具有两个能力等级的康康

mysql - Rails 3 应用程序 - 将整数保存到数据类型为 int(11) 的列时出现问题

node.js - Express 和 socket.io : pass var io to router

javascript - Angular.js API 调用 - 我应该使用工厂吗?

ruby-on-rails - 不是公认的存储提供商(Mongoid、Carrierwave 和 S3