我最近在其中一臺家用機器上設置了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,但是如果我無法遠程連接,我甚至無法啓動!每次我想編輯或看到我的作品時,都必須遠程桌面,這並不是件好事!
謝謝!幫助過我! – marverix 2012-02-06 09:56:40