我在许多论坛上寻找过类似的查询,包括堆栈溢出,但运气不好。我在openshift上创建了DIY应用程序并安装了Java和Apache Web服务器,Web服务器工作正常,但现在我正在寻找托管基于RAW TCP套接字的程序,在openshift上监听8080端口,程序在openshift控制台中运行,我看到了Server Listening ...消息,但当我尝试从我的系统连接我的套接字客户端时,它只重试几秒钟,然后它说,连接由同行重置,我现在应该做什么,或者是否有任何替代解决方案?
谢谢!
答案 0 :(得分:1)
您似乎正在尝试使用客户端连接到端口8080:
echoSocket = new Socket(serverHostname, 8080);
OpenShift仅允许用户绑定15000和35530之间的端口。但是,在执行此操作时,用户还必须指定主机的IP地址,否则将使用localhost,这在OpenShift上是不允许的。服务器的地址位于环境变量OPENSHIFT_DIY_IP下(如果使用JBoss,变量可能根据所使用的技术而具有不同的名称,如在您的情况下,它是DIY)。
服务器仍然需要绑定到8080才能从外部访问,但客户端实际上应该连接到80或8000(websockets)。有关如何在OpenShift上路由请求的详细信息,请参阅此图表。
按下代码时检查终端输出,以查看启动服务器的操作挂钩是否有效。确保钩子文件可执行。
有关详细信息,请参阅此处
Port Binding and Routing Requests to your OpenShift Application
因此,在您的应用程序盒中,HAProxy只允许使用websocket或HTTP流量,任何具有此类协议的流量都不会通过它。所以你使用websocket更好,而不是使用RAW套接字。