2017-05-27 76 views
2

我有一個web應用在端口8080上的亞馬遜EC2實例上運行,webapp在啓動時啓動一個Socket 90端口監聽端口。如何在Amazon EC2實例上允許Socket IO請求?

在客戶端文件中連接到Socket io服務器我有這樣的:

io.connect('http://<IPADDRESS>:9092'); 

不幸的是,這種要求越來越封閉,如圖socket.io requests blocked

我覺得這個問題對我的EC2實例的入站規則,所以我允許的流量爲目的,如圖所示: Ec2 instance inbound rules

但請求仍然受阻......

注:當我的應用程序在本地託管,一切工作正常。

那麼,爲什麼亞馬遜這樣做,我該怎麼做才能解決這個問題呢?

UPDATE:

netstat -a -n | grep 9092這個實例上輸出:

netstat output on port 9092

也對什麼樣的Firefox顯示我一個請求嘗試時刻的樣子:

socketio request timings

+0

「亞馬遜」不是「以這種方式行事」。他們沒有隱藏的規則來阻止事物。有些東西你配置不正確,但沒有足夠的信息顯示在這裏來說明問題。當你說連接被「封鎖」時,你說的比你在這裏展示的要多。它沒有成功,當然,但是具體說它被「封鎖」的理由是什麼?什麼'netstat -a -n | grep 9092'顯示,在實例上? –

+0

謝謝@ Michael-sqlbot評論,我更新了我的問題。感謝您看看它。 –

+0

它看起來像你的'socket.io'服務器綁定到本地接口,無法到達外部。你可以分享設置'socket.io'服務器的代碼嗎? – robertklep

回答

2

它轉向我將我的服務器綁定到本地主機地址,就好像它是從本地主機訪問的一樣。

感謝@robertklep評論,我確實將服務器綁定到ec2實例地址,現在它正在工作。

+0

我正在做類似的事情,我試圖在兩個EC2實例之間進行通信,並看到「網關超時錯誤」 – RRP