2011-08-09 3 views
1

まず私のホスト上でのWebSocketサーバーに接続できません。)他のホストは私の悪い英語のため申し訳ありませんが、すべての

私のJavaアプリケーション(マルチプレイヤーゲームサーバ)はWebSocketをを使用して、クライアントのブラウザでのWebアプリケーションと通信するために、このパッケージを使用しています:https://github.com/TooTallNate/Java-WebSocket

アプリケーションの実行中に問題が発生しました。私はwebsocketサーバーに接続できますが、他のホストのクライアントはアクセスできません。ブラウザでは、私はいつものように、接続をestabilish、アドレスがここに確かに正しいです:私は、同じホスト上で実行されているのWebSocketサーバーに自分のホストから接続する場合

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

、それは完璧に動作します。他のホストが私に接続しようとすると、接続が確立されていないとき:ブラウザのWebSocketオブジェクトの.readyStateは0(1にする必要があります)であり、サーバーでもハンドシェークは受け付けません(サーバーコンソールのonClientOpenからの出力はありません。特定のWebSocketServerクラスのメソッドからの出力を取得しようとしました)。

他のホストは、同じホスト上の80ポートのWebサーバーからのWebアプリケーションの静的コンテンツを受信して​​います。問題は閉鎖された8787ポートではありません:私はそれをチェックしました、それは開いています。

他のホストがWebSocketサーバーに接続できない原因は何でしょうか?

+0

IPの外観はどうですか?それはプライベートIPかパブリックIPですか? – pimvdb

答えて

3

WebSocketsは、クロスオリジンのアクセス許可システムを使用します。 WebSocketサーバーに、ローカルホスト以外の接続を受け入れるように指示する必要があるかもしれません。 Originの検証は、onclientOpenの前に起こりそうなWebSocketハンドシェイク中に発生します。

関連する問題