1

我已经设置了我的 Faye 服务器,与我的 Rails 服务器一起运行,就像本教程告诉我的那样:http: //net.tutsplus.com/tutorials/ruby/how-to-use-faye-as-a-real- time-push-server-in-rails/

没有奇怪的行为,直到我取消注释该行

var client = new Faye.Client('http://localhost:9292/faye');

然后 Firebug 给了我这个问题标题中的错误。访问 localhost:9292/faye 和 /faye.js 给了我我所期望的,并且(显然)引用该 .js 文件的 javascript_include_tag 没有任何问题。

当我开始 faye 时,我必须使用 bundle exec,根据这个错误消息:

$ rackup ./config.ru -E production -s thin -p 9292 /Users/newcreation/.rvm/gems/ruby-1.9.3-p0@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:31:in ``block in setup': You have already activated rack 1.4.1, but your Gemfile requires rack 1.3.0. Using bundle exec may solve this. (Gem::LoadError)

我的 config.ru 看起来像这样:

require 'rubygems'
require 'bundler'
Bundler.require
require 'faye'

require File.expand_path('../config/initializers/faye_token.rb', __FILE__)

faye_server = Faye::RackAdapter.new(:mount => '/faye', :timeout => 45)
run faye_server

有任何想法吗?

谢谢

4

1 回答 1

6

显然,您至少需要 0.7 版才能支持 websocket。 http://blog.jcoglan.com/2011/11/28/announcing-faye-websocket-a-standards-compliant-websocket-library/ 这意味着更新 ruby​​gems,对我来说,并重新运行捆绑安装。我还需要更改我的 .ru 文件以包含以下内容:

Faye::WebSocket.load_adapter('thin')
于 2012-06-09T23:47:34.353 回答