2016-06-12 4 views
1

Host Ich habe ähnliche Abfrage in vielen Foren einschließlich Stack Overflow gesucht, aber Pech gehabt. Ich habe DIY-Anwendung auf OpenShift erstellt und installiert Java zusammen mit Apache-Webserver, der Webserver funktioniert gut über ihre, aber jetzt bin auf der Suche nach Host-RAW-TCP-Socket-basierte Programm, auf 8080 Port auf openshift zu hören, läuft das Programm in OpenShift-Konsole , Ich sehe die Server Listening ... Nachricht, aber wenn ich versuche, meinen Socket-Client von meinem System zu verbinden, es nur für ein paar Sekunden wiederholen, und dann heißt es, Verbindungen von Peer zurückgesetzt, was soll ich jetzt tun, oder gibt es irgendwelche Alternativlösung dazu?wollte Raw-Socket-Programm in JAVA auf OpenShift

Danke!

Antwort

1

Es scheint, dass Sie versuchen, Port 8080 mit dem Client zu verbinden:

echoSocket = new Socket(serverHostname, 8080); 

Openshift erlaubt nur die Ports zwischen 15000 und 35530, die von einem Benutzer gebunden. In diesem Fall muss der Benutzer jedoch auch die IP-Adresse des Hosts angeben, andernfalls wird localhost verwendet, was bei OpenShift nicht erlaubt ist. Die Adresse des Servers befindet sich unter der Umgebungsvariablen OPENSHIFT_DIY_IP (Wenn Sie JBoss verwenden, hat die Variable möglicherweise einen anderen Namen, je nachdem, welche Technologie verwendet wird, da es in Ihrem Fall DIY ist).

Der Server muss weiterhin an 8080 gebunden sein, um extern erreichbar zu sein, aber Clients sollten sich tatsächlich mit 80 oder 8000 (Websockets) verbinden. In diesem Diagramm finden Sie Einzelheiten zum Weiterleiten von Anforderungen an OpenShift.

enter image description here

Überprüfen Sie die Terminal-Ausgabe, wenn der Code drücken, um zu sehen, ob die Aktion Haken, der die Server-Werke startet. Stellen Sie sicher, dass die Hook-Datei ausführbar ist.

Sehen Sie diese für weitere Informationen

Port Binding and Routing Requests to your OpenShift Application

Also, insgesamt nur websocket oder HTTP-Verkehr durch die HAProxy in Ihrer Anwendung Patronen erlaubt ist, wird jedes Verkehrsprotokoll als dies mit nicht durchgeleitet werden. Also besser Sie verwenden Websocket anstelle von RAW-Sockets.

+0

Howabout mit JAVA DatagramSocket? Gibt es eine Möglichkeit, auf diese Sockets zuzugreifen? – Anand

+0

Wie Sie in der obigen Abbildung sehen können, ist nur der HTTP-Verkehr durch den Openshift-Proxy erlaubt, so dass kein anderes Protokoll durchgelassen werden darf! –