2012-09-24 41 views
3

我有一些socket.io node.js服務器作爲amazon實例運行,當直接連接到一個實例時,我的socket.io應用程序可以在幾毫秒內連接並重新連接。但是,當我通過負載平衡器指導應用程序時,應用程序連接和重新連接的速度要慢很多(需要5秒以上)。帶有Amazon Load Balancer的Socket.io,應該轉發哪些端口?

我配置了負載均衡器來轉發TCP端口80,以及我的節點服務器偵聽的端口(端口3000)。 socket.io需要其他端口來實現最佳功能嗎?或者,我的問題是由端口以外的事情引起的?

謝謝。

+0

你介意分享你如何做你的負載平衡。你有一個負載均衡器面向你的nodejs實例。 socketio在另一個實例中,並通過負載均衡器訪問nodejs?在這種情況下,yo.u是否也負載均衡socket.io? – twb

+0

不完全,目前我的應用程序被加載到一個單獨的PHP服務器上,並且沒有負載平衡。 socket.io服務器位於負載平衡器後面。我只需要將消息推送到客戶端,而不是從**開始,因此客戶端將被引導到可用的服務器,當我推出消息時,它們將被推送到所有實例/服務器。希望解釋一下? – SteveEdson

回答

1

我意識到這不是與端口或類似的東西有關。亞馬遜負載均衡器保持第一次重新連接嘗試打開,直到它超時,這意味着第一個連接在超時或重新連接之前等待60秒。我無法縮短ELB的超時時間,這是AWS論壇上的一個已知問題,現在已經有幾個年的

相關問題