在OpenShift Online Next Gen Starter中连接到Websocket

时间:2017-10-07 16:55:00

标签: node.js openshift openshift-3

我正在尝试获取一个应用程序,我建立在旧的OpenShift Online 2免费服务上并在新的OpenShift Online 3 Starter上运行,我已经拥有了有点麻烦。

应用程序使用websocket,在旧系统中,所需的只是客户端连接到我的服务器端口8443(它自动路由到我的服务器)。但这似乎不适用于新的设置 - 连接只是超时 - 而且我还没有找到任何关于在新系统中使用websocket的文档。

我的第一个想法是我需要一个额外的路由,但就我所见,8080是唯一可用于路由的端口选项。

该应用程序存在here,并且在this script的第21行与该行建立了连接:

    this.socket = new WebSocket( 'wss://' + this.server + ':' + this.port, 'tabletop-protocol' );

在实践中,这变成了:

    this.socket = new WebSocket( 'wss://production-instanttabletop.7e14.starter-us-west-2.openshiftapps.com:8443/', 'tabletop-protocol' );

在后端,服务器设置与OpenShift 2上的服务器设置相同,除了根据需要更新env的IP和端口查找,并添加日志记录以帮助诊断问题。我一直在。

作为参考,这里是node.js服务器代码(修剪出逻辑):

var http = require( "http" );
var ws = require( "websocket" ).server;
// Trimmed some others used by the logic...

var ip = process.env.IP || process.env.OPENSHIFT_NODEJS_IP || '0.0.0.0';
var port = process.env.PORT || process.env.OPENSHIFT_NODEJS_PORT || 8080;

/* FILE SERVER */

// Create a static file server for the client page
var pageHost = http.createServer( function( request, response ){

    // Simple file server that seems to be working, if a bit slowly
    // ...

} ).listen( port, ip );

/* WEBSOCKET */

// Create a websocket server for ongoing communications
var wsConnections = [];
wsServer = new ws( { httpServer: pageHost } );

// Start listening for events on the server
wsServer.on( 'request', function( request ){

    // Server logic for the app, but nothing in here ever gets hit
    // ...

} );

在另一个问题中,有人提出几乎任何事情 - 包括这个 -  可能与美国West 2正在进行的一般性问题有关,但我遇到的其他相关问题似乎已经解决,而且这个问题已经发布了一个星期而没有更新,所以我认为我会深入挖掘假设它是我' m 做错了而不是它们。

任何人都知道更多关于这个以及我需要做些什么才能使它发挥作用?

0 个答案:

没有答案