【问题标题】:Wanted to host Raw socket program in JAVA on openshift想在 openshift 上用 JAVA 托管 Raw socket 程序
【发布时间】:2016-10-12 22:36:38
【问题描述】:

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

谢谢!

【问题讨论】:

    标签: java sockets openshift


    【解决方案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 套接字。

    【讨论】:

    • 用JAVA DatagramSocket怎么样?有什么方法可以访问这些套接字吗?
    • 如上图所示,openshift代理只允许HTTP流量,其他任何协议都不允许通过!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    相关资源
    最近更新 更多