Подключение к Websocket в OpenShift Online Next Gen Starter
Я пытаюсь запустить приложение, которое я построил на старой бесплатной службе OpenShift Online 2, и запустить его на новом OpenShift Online 3 Starter, и у меня возникли некоторые проблемы.
Приложение использует websocket, и в старой системе все, что требовалось, чтобы клиент подключался к моему серверу через порт 8443 (который был автоматически направлен на мой сервер). Это, похоже, не работает в новой настройке - соединение просто прерывается - и я не смог найти никакой документации по использованию websocket в новой системе.
Моей первой мыслью было, что мне нужна дополнительная маршрутизация, но насколько я вижу, 8080 - единственная опция порта, доступная для маршрутизации.
Приложение живет здесь, и соединение устанавливается в строке 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, за исключением обновления IP и поиска портов из env
по мере необходимости, и добавление регистрации, чтобы помочь диагностировать проблемы, которые у меня были.
Для справки, вот код сервера 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
// ...
} );
В другом вопросе было высказано предположение, что почти все, включая это, может быть связано с текущими общими проблемами с США Запад 2, но другие связанные с этим проблемы, с которыми я столкнулся, похоже, устранены, и эта проблема была опубликована в течение недели с без обновлений, поэтому я решил, что буду копаться глубже в этом предположении, что это что-то, что я делаю не так, как они.
Кто-нибудь знает больше об этом и что мне нужно сделать, чтобы это работало?