2014-09-05 73 views
7

我試着找到這個問題的答案,我能找到的所有答案都是舊的「不,它不會」或「在未來它會」。我試過socket.io-redis沒有效果。在Heroku上,一個dyno會創建工作套接字,除此之外,您將從Socket.io中獲得以下錯誤,這意味着不會出現縮放。Socket.io和Heroku一起工作嗎?

{ 「編碼」:1, 「消息」: 「會話ID未知」}

在我看來,目前對WebSocket的 「支持」 的Heroku聲稱有確實是開發商一個殘酷的玩笑。

編輯: Heroku支持websockets,但它只是不會與Redis的socket.io集羣一起工作。所以我只運行一個專用於套接字的實例。當我想用Heroku使用套接字。

回答

2

披露:我是Heroku的Node.js平臺所有者。

tl; dr:我們在私人測試版中提供了多測頭socket.io支持。

Heroku完全支持WebSockets,它不需要會話關聯,並且與socket.io不一樣。

Socket.io是一個更高層次的軟實時抽象,它使用WebSocket作爲其衆多潛在傳輸之一。 Socket.io does需要會話關聯,並且socket.io(在Heroku或其他地方)的任何多節點事件共享實現都需要socket.io-redis(或類似的)。

粘滯會話的大多數實現中斷12factor architecture。我們現在已經爲socket.io,meteor和sockjs用戶運行了一個靈活的,可擴展的flip-a-switch粘性會話測試版。如果您想加入,請發送電子郵件至[email protected];我們將在未來幾周內向公衆開放。