试图在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连接的加载程序平衡器