想在openshift上使用JAVA托管Raw套接字程序

时间:2016-06-12 12:02:22

标签: java sockets openshift

我在许多论坛上寻找过类似的查询,包括堆栈溢出,但运气不好。我在openshift上创建了DIY应用程序并安装了Java和Apache Web服务器,Web服务器工作正常,但现在我正在寻找托管基于RAW TCP套接字的程序,在openshift上监听8080端口,程序在openshift控制台中运行,我看到了Server Listening ...消息,但当我尝试从我的系统连接我的套接字客户端时,它只重试几秒钟,然后它说,连接由同行重置,我现在应该做什么,或者是否有任何替代解决方案?

谢谢!

1 个答案:

答案 0 :(得分:1)

您似乎正在尝试使用客户端连接到端口8080:

echoSocket = new Socket(serverHostname, 8080);

OpenShift仅允许用户绑定15000和35530之间的端口。但是,在执行此操作时,用户还必须指定主机的IP地址,否则将使用localhost,这在OpenShift上是不允许的。服务器的地址位于环境变量OPENSHIFT_DIY_IP下(如果使用JBoss,变量可能根据所使用的技术而具有不同的名称,如在您的情况下,它是DIY)。

服务器仍然需要绑定到8080才能从外部访问,但客户端实际上应该连接到80或8000(websockets)。有关如何在OpenShift上路由请求的详细信息,请参阅此图表。

enter image description here

按下代码时检查终端输出,以查看启动服务器的操作挂钩是否有效。确保钩子文件可执行。

有关详细信息,请参阅此处

Port Binding and Routing Requests to your OpenShift Application

因此,在您的应用程序盒中,HAProxy只允许使用websocket或HTTP流量,任何具有此类协议的流量都不会通过它。所以你使用websocket更好,而不是使用RAW套接字。