Попытка запустить простое приложение 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 соединения