2010-11-12 25 views
1

我最近在其中一臺家用機器上設置了WebSocket服務器,並試圖通過遠程連接使其工作。我用下面的PHP WebSocket的解決方案(支持草案75和76):使WebSocket從遠程URL工作

尼科Kaiser的PHP WebSocket伺服器

從本地連接的演示完美的作品。我可以在本地主機上使用客戶端演示,我的DNS指向我的主機,並且(最奇怪的部分)是僅託管客戶端文件的遠程PHP主機。 javascript指向WebSocket的主機。

這個問題發生在我使用另一臺機器時,一些不在家的東西。即使當我轉到完全相同的URL時,WebSocket也不會連接。所以這裏是發生了什麼:

指向家庭機器的URL - 只在家工作。來自其他PC的頁面加載,但WebSocket不會連接。 http://whoisryannystrom.com/tests/socket/client - 僅在家工作。來自其他PC的頁面加載,但WebSocket不會連接。

我有這樣設置的client.html文件中的WebSocket地址(我知道這是正確的)。這在localhost和遠程客戶端html文件中是一樣的。

var server = new WebPush('ws://rnystrom.mine.nu:8000/echo'); 

然後我對服務器的PHP文件需要的地址有些困惑。以下是我目前有:

主服務器PHP(server.php):

$server = new \WebSocket\Server('rnystrom.mine.nu', 8000); 

然後在\服務器\ LIB \的WebSocket(WebSocket的類文件,我想...)我使用'localhost'。我已經嘗試過'rnystrom.mine.nu'和'localhost',都在家用機器上工作,並且它們都不能遠程工作,所以它似乎沒有什麼區別。我相信$ host是用在構造函數中的東西。主server.php定義了$ host。

我不知所措。我真正想做的就是能夠開始嘗試使用WebSockets,但是如果我無法遠程連接,我甚至無法啓動!每次我想編輯或看到我的作品時,都必須遠程桌面,這並不是件好事!

回答

0

這聽起來像您的防火牆配置爲允許端口80上的外部連接,而不是在端口8000

4

我注意到這是舊的,但我在一個點上有這個問題。將它綁定到0.0.0.0,因爲這使得它可以監聽所有主機(因爲沒有更好的單詞)。

+0

謝謝!幫助過我! – marverix 2012-02-06 09:56:40