2011-08-09 125 views
1

首先對不起我的英語不好對服務器:)其他主機不能連接到的WebSocket我的主機

我的Java應用程序(多人遊戲服務器)使用這個包與Web應用程序通信客戶端的使用瀏覽器的WebSockets :https://github.com/TooTallNate/Java-WebSocket

我遇到了運行我的應用程序的問題:只有我可以連接到websocket服務器,其他主機上的客戶端不能這樣做。在瀏覽器中我estabilish連接一樣,這裏的地址肯定是正確的:

new WebSocket("ws://"+serverIp+":8787"); 

當我從我自己的主機連接到同一臺主機上運行的WebSocket服務器,它運行完美。當其他主機嘗試連接到我時,未建立連接:在瀏覽器中,WebSocket對象的.readyState爲0(雖然它應該爲1),甚至服務器也不會收到任何握手(服務器控制檯中的onClientOpen沒有輸出,我甚至試圖從某些WebSocketServer類的方法中獲得任何輸出)。

其他主機仍在接收來自同一主機上80端口上的Web服務器的Web應用程序的靜態內容。問題不是關閉的8787端口:我檢查了它,它是開放的。

可能是其他主機無法連接到我的websocket服務器的原因?

+0

IP的外觀如何?它是一個私有IP還是公有IP? – pimvdb

回答

3

WebSockets使用跨源許可系統。您可能需要告訴您WebSocket服務器接受來自本地主機以外的連接。 Origin的驗證發生在可能發生在onclientOpen之前的WebSocket握手期間。

相關問題