1

我有問題,我的作用電纜在Heroku上的應用程序:config動作電纜的Heroku - 錯誤本地主機:3000 /電纜

WebSocket連接到「WS://本地主機:3000 /電纜」失敗:連接錯誤建立:網:: ERR_CONNECTION_REFUSED

我production.rb:

config.action_cable.url = "wss://NAME.herokuapp.com/cable" 
    config.action_cable.allowed_request_origins = ['https://NAME.herokuapp.com', 'http://NAME.herokuapp.com'] 

我試圖指定的cable.js以及服務器:

@App ||= {} 
App.cable = ActionCable.createConsumer("wss://NAME.herokuapp.com/cable") 

我試圖改變它在development.rb以防萬一,但沒有什麼幫助。 Heroku仍然試圖連接到本地主機。

另一個與它沒有任何共同點的奇怪東西,我認爲應用程序無法處理一些js代碼:alert('test')或console.log(「haha」),儘管有一些js代碼工作,我試着資產:預編譯。

在localhost中,一切正常。任何想法可能與Heroku和設置有問題?

回答

0

雖然ActionCable正在開發中,但我記得你必須啓動2臺服務器才能連接電纜和Rails。我認爲最終版本仍然不需要。

我的猜測是你的Heroku實例沒有配置Redis,而在Production中,ActionCable依靠Redis進行服務器通信。

爲了解決這個問題,你應該做到以下幾點:

heroku addons:add redistogo

heroku config | grep REDISTOGO_URL

在你config/cable.yml,Redis的URL設置給定的一個。我想你應該也可以使用ENV['REDISTOGO_URL']來代替網址。

讓我知道是否有幫助。

+0

我設置了redis服務器,這不應該是問題,但無論如何感謝。我認爲這是要告訴heroku如何連接到websocket中的正確服務器。 – Dudis