【发布时间】:2015-02-02 21:05:41
【问题描述】:
我正在使用 Websocket-rails、sidekiq、redis、骨干网。
#config/initializers/websocket_rails.rb
WebsocketRails.setup do |config|
config.standalone = false
config.synchronize = true # <= problem
uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://127.0.0.1")
config.redis_options = {:host => uri.host, :port => uri.port || 6379}
end
当我在 localhost 上使用这个初始化程序时,它运行良好。当我把它推到heroku时:
$ heroku ps
=== web (1X): `bundle exec rails server -p $PORT`
web.1: crashed 2014/12/04 20:40:35 (~ 28m ago)
如果我创建 config.synchronize = false ,它不会在 heroku 和 localhost 上崩溃,但 websockets 不再起作用。
附加信息:
#config/initializers/redis.rb
uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://127.0.0.1")
$redis = Redis.new(:host => uri.host, :port => uri.port || 6379, :password => uri.password, :driver => :hiredis)
#config/initializers/sidekiq.rb
Sidekiq.configure_server do |config|
config.redis = {driver: :hiredis}
end
#config/events.rb -> clear (this file not exist)
#app/assets/javascripts/application.js
...
//= require websocket_rails/main
//= require_tree .
var dispatcher = new WebSocketRails(window.document.location.host + '/websocket');
var channel = dispatcher.subscribe('channel_name');
尝试了我在谷歌 stackOverflow 上找到的所有内容。还没有尝试使其独立。 有什么建议?我只需要以某种方式让这个 websockets 在 heroku 上工作,并且通过许多测试,只有当同步设置为 true 时才会出错。
【问题讨论】:
标签: ruby-on-rails heroku websocket redis sidekiq