我用的是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当我在本地主机上使用这个初始化器时,它工作得很好。当我把它推给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和本地主机上崩溃,但是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时,才会出现错误。
发布于 2014-12-04 20:38:03
酷,我一直在搜索,找到了新的示例http://tgib23.github.io/blog/2014/10/30/deploy-rails-websocket-app-into-heroku/,并将websocket更改为:
配置/初始化器/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, :user => 'redistogo', :password => 'xxxxxxxxxxxxxxxxxxxx'}
}
end我登录到heroku,查看redistogo广告,获取编码密码,在这里复制到这个密码,就像我很惊讶--它有效!)
https://stackoverflow.com/questions/27303281
复制相似问题