Конфигурация Websocket в производстве? - PullRequest
0 голосов
/ 14 июня 2019

Попытка запустить простое приложение WebSocket в рабочей среде, размещенной на AWS, но не может заставить его работать.

Это реализация сервера ...

import app from "./app";
import { server as WebSocketServer } from "websocket";


const server = app.listen(9000, () => {});

export const wsServer = new WebSocketServer({
  httpServer: server
});

export const WebSocketClients: any[] = [];
wsServer.on("request", function(request) {
  /* tslint:disable */
  const connection = request.accept(null, request.origin);
  const index = WebSocketClients.push(connection) - 1;

  connection.on("message", function(message) {
    if (message.type === "utf8") {
      // process WebSocket message
    }
  });

  connection.on("close", function(connection) {
    WebSocketClients.splice(index, 1);
  });
});

Когда я подключаюсь с моего клиента в dev, все работает

new WebSocket("ws://127.0.0.1:9000"); // returns 101 switching protocols.

Однако, когда я подключаюсь в производственном режиме после размещения на AWS, происходит сбой.

new WebSocket("ws://dev-sis-backend.ap-southeast-2.elasticbeanstalk.com:9000");

Это простое экспресс-приложение, есть ли какая-то конкретная конфигурация сервера, которая необходима для его работы? Я не понимаю, что происходит не так. Но не имею опыта работы с протоколом WebSocket.

РЕДАКТИРОВАТЬ: Кроме того, наша конфигурация сервера имеет балансировщик загрузчика, который разрешает только http / https соединения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...