Развертывание приложения Ruby on Rails в Heroku с использованием Action Cable (прослушивание порта Puma)

У меня есть Action Cable, работающий в локальной среде хоста, и в этой ситуации я запускаю сервер Puma, используя простой файл, содержащий

# /bin/bash
bundle exec puma -p 28080 cable/config.ru

Как только это происходит, сервер puma запускается и прослушивает этот порт 28080 и порт, на котором работает локальный сервер. Во время охоты в Интернете я не смог найти место, которое бы подсказывало мне способ подражать этому на heroku или способ, чтобы мой сервер всегда запускался на одном и том же порту (хотя я не знаю, даст ли это мне желаемый результат либо )

У меня есть файл JavaScript, настроенный для создания потребителя, связанного с этим портом.

//= require cable
//= require_self
//= require_tree .


this.App = {};

App.cable = Cable.createConsumer('ws://127.0.0.1:28080');

Я предполагаю, что мне нужно будет также изменить часть 127.0.0.1, чтобы развертывание на heroku работало, но я не уверен. Я попытался отрезать деталь 28080 и заменить ее на ENV ['PORT'], но там говорилось, что это неизвестная переменная, хотя у меня настроен файл puma.rb, порт которого настроен как

... (only part of the file)
rackup      DefaultRackup
port        ENV['PORT']     || 3000
environment ENV['RACK_ENV'] || 'development'
...

Поэтому мне показалось, что ENV ['PORT'] определяется так, как когда я проверяю логи heroku, сервер puma будет

2015-07-26T06:50:25.278030+00:00 heroku[web.1]: Starting process with command `bin/rails server -p 48875 -e production`
2015-07-26T06:50:30.760680+00:00 app[web.1]: => Booting Puma
2015-07-26T06:50:30.760714+00:00 app[web.1]: => Rails 4.2.1 application starting in production on http://0.0.0.0:48875
2015-07-26T06:50:30.760716+00:00 app[web.1]: => Run `rails server -h` for more startup options
2015-07-26T06:50:30.760718+00:00 app[web.1]: => Ctrl-C to shutdown server
2015-07-26T06:50:31.578843+00:00 app[web.1]: Puma 2.12.2 starting...
2015-07-26T06:50:31.578851+00:00 app[web.1]: * Min threads: 0, max threads: 16
2015-07-26T06:50:31.578859+00:00 app[web.1]: * Environment: production
2015-07-26T06:50:31.578861+00:00 app[web.1]: * Listening on tcp://0.0.0.0:48875

Я прошу прощения, если что-то неясно, и был бы рад предоставить дополнительную информацию, если я что-то пропустил.

РЕДАКТИРОВАТЬ

Вот обновленный код в /app/assets/javascripts/channels/index.js.erb

//= require cable
//= require_self
//= require_tree .

this.App = {};

App.cable = Cable.createConsumer('<%= ENV["CABLE_SERVER"] %>');

где ENV ["CABLE_SERVER"] указывает наws://the-action-cable-server.herokuapp.com, Эта переменная хранится в переменных env сервера rails.

Ответы на вопрос(1)

Ваш ответ на вопрос