2016-06-12 1 views
1

スタックオーバーフローを含む多くのフォーラムで同様のクエリを探しましたが、不運です。私はopenshift上でDIYアプリケーションを作成し、Apache Webサーバーと一緒にJavaをインストールしましたが、Webサーバーは上手く動作しますが、現在はRAW TCPソケットをベースにしたプログラムをホストして、openhiftの8080ポートで待機します。私はServer Listening ...というメッセージが表示されますが、私のシステムからソケットクライアントを接続しようとすると、数秒間再試行してから、接続がピアによってリセットされたかどうか、現在何をするか、これに対する代替ソリューション?openshiftでJavaのRawソケットプログラムをホストしたい

ありがとうございます!

答えて

1

あなたがあなたのクライアントでポート8080に接続しようとしているようだ:

echoSocket = new Socket(serverHostname, 8080); 

OpenShiftは15000と35530の間のポートが使用者に拘束されることを可能にします。ただし、そうする場合は、ホストのIPアドレスも指定する必要があります。そうしないと、OpenShiftでは使用できないlocalhostが使用されます。サーバーのアドレスは環境変数OPENSHIFT_DIY_IPの下にあります(JBossを使用している場合は、使用されているテクノロジに基づいて変数が異なります)。

サーバーは外部に到達するために8080にバインドする必要がありますが、クライアントは実際に80または8000(Webソケット)に接続する必要があります。 OpenShiftで要求をルーティングする方法の詳細については、この図を参照してください。

enter image description here

コードを押すと、サーバーの動作を起動され、あなたのアクションフックかどうかを確認するために、ターミナル出力を確認してください。フックファイルを実行可能にしてください。

だから、全体的なだけのWebSocketやHTTPトラフィックは、アプリケーション・カートリッジにHAProxyによって許可されているより多くの情報

Port Binding and Routing Requests to your OpenShift Application

のためにこれを参照してください、これ以外のプロトコルを有する任意のトラフィックがそれを通過したことはありません。したがって、RAWソケットを使用する代わりにwebsocketを使用する方が良いでしょう。

+0

どのようにJAVA DatagramSocketを使用していますか?これらのソケットにアクセスする方法はありますか? – Anand

+0

上記の図のように、openshiftプロキシはHTTPトラフィックだけを許可しているので、他のプロトコルは通過できません。 –

関連する問題