在生产中配置Websocket?

时间:2019-06-13 23:29:08

标签: node.js websocket

试图在AWS托管的生产环境中运行一个简单的WebSocket应用,但似乎无法使其正常工作。

这是服务器实现...

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);
  });
});

当我从开发人员的客户端连接时,一切正常

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");

它是一个简单的Express APP,是否需要特定的服务器配置才能使其正常运行?我不明白怎么了。但是没有WebSocket协议的经验。

编辑:同样,我们的服务器配置具有一个仅允许http / https连接的加载程序平衡器

0 个答案:

没有答案