Próbowałem wszystkiego, co mogę znaleźć w Internecie, i nic nie działa. Mając nadzieję, że niektóre świeże oczy zobaczą problem. Po raz pierwszy używam ActionCable i wszystko działa świetnie lokalnie, ale kiedy pcham do heroku. moje dzienniki nie wykazują żadnych actioncable subskrypcje jak mój serwer dev:kabel akcji subskrybujący lokalnie, ale nie na heroku
[ActionCable] [[email protected]] MsgsChannel is streaming from msg_channel_34
i podczas wysyłania wiadomości, ja widzę [ActionCable] Broadcasting to msg_channel_34:
ale nie są one dołączanie, który Zgaduję oznacza, że metoda received
nie jest dostępny /nazywa?
Zauważam na logach heroku, że mówi Listening on tcp://0.0.0.0:5000
, gdzie jako dev to słuchanie na localhost: 3000. Czy powinienem w jakiś sposób zwracać uwagę na moją aplikację heroku?
Oto odpowiednie pliki konfiguracyjne:
Procfile:
web: bundle exec puma -p 5000 ./config.ru
actioncable: bundle exec puma -p 28080 cable/config.ru
redis: redis-server
*** Dzięki poniższym komentarzu, ja również próbować. Nadal nie działa, ale widzę, że port, którego słucha się zmienia, sprawia, że wierzę, że ma coś wspólnego z konfiguracją? :
web: bundle exec puma -p $PORT ./config.ru
actioncable: bundle exec puma -p $PORT cable/config.ru
redis: redis-server
/cable/config.ru
require ::File.expand_path('../../config/environment', __FILE__)
Rails.application.eager_load!
ActionCable.server.config.allowed_request_origins = ["http://localhost:3000"]
run ActionCable.server
konfiguracji/Środowiska/development.rb
config.action_cable.allowed_request_origins = ['localhost:3000']
config.action_cable.url = "ws://localhost:3000/cable"
konfiguracji/Środowiska/production.rb
config.web_socket_server_url = "wss://app-name.herokuapp.com/cable"
config.action_cable.allowed_request_origins = ['https://app-name.herokuapp.com', 'http://app-name.herokuapp.com']
konfiguracji /cable.yml
local: &local
adapter: async
:url: redis://localhost:6379
:host: localhost
:port: 6379
:timeout: 1
:inline: true
development: *local
test: *local
production:
:url: redis:<%= ENV["REDISTOGO_URL"] %>
adapter: redis
<%= ENV["REDISTOGO_URL"] %>
jest ustawiony, potwierdzone przez uruchomienie Heroku config
routes.rb
mount ActionCable.server => '/cable'
Dlaczego to działa na dev, ale nie na Heroku? Czytam od wielu godzin, ale nie mogę tego rozgryźć. Dziękuję Ci!!
UPDATE: kłody Heroku:
2017-01-25T20:32:57.329656+00:00 heroku[web.1]: Starting process with command `bundle exec puma -p 5000 ./config.ru`
2017-01-25T20:32:59.600554+00:00 app[web.1]: Puma starting in single mode...
2017-01-25T20:32:59.600574+00:00 app[web.1]: * Version 3.6.2 (ruby 2.3.1-p112), codename: Sleepy Sunday Serenity
2017-01-25T20:32:59.600575+00:00 app[web.1]: * Min threads: 0, max threads: 16
2017-01-25T20:32:59.600577+00:00 app[web.1]: * Environment: production
2017-01-25T20:33:02.375128+00:00 app[web.1]: profile controller
2017-01-25T20:33:02.588653+00:00 app[web.1]: Use Ctrl-C to stop
2017-01-25T20:33:02.588446+00:00 app[web.1]: * Listening on tcp://0.0.0.0:5000
2017-01-25T20:33:17.681469+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2017-01-25T20:33:17.681469+00:00 heroku[web.1]: Stopping process with SIGKILL
2017-01-25T20:33:17.862118+00:00 heroku[web.1]: Process exited with status 137
2017-01-25T20:33:57.501746+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2017-01-25T20:33:57.501908+00:00 heroku[web.1]: Stopping process with SIGKILL
2017-01-25T20:33:57.630071+00:00 heroku[web.1]: Process exited with status 137
2017-01-25T20:33:57.642753+00:00 heroku[web.1]: State changed from starting to crashed
Znaleźliście jeszcze rozwiązanie? –
@Codingactive yes - Wysłałem rozwiązanie poniżej – gwalshington