Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ECS上的负载平衡WebSocket?_Javascript_Amazon Web Services_Amazon Ecs - Fatal编程技术网

Javascript ECS上的负载平衡WebSocket?

Javascript ECS上的负载平衡WebSocket?,javascript,amazon-web-services,amazon-ecs,Javascript,Amazon Web Services,Amazon Ecs,我刚刚开始理解和解决这个问题 js的Socket.io或Go的Gorilla websocket解决方案每个实例都有一个连接池。因此,在每个实例中,我可以说“向客户机xxx发送消息” 但是,当我尝试水平扩展(通过生成其他实例)时,每个实例都有自己的客户端连接池,因此尝试向连接到另一个实例的特定客户端发送消息失败。我假设这是因为当前实例没有访问该实例的连接/内存池的权限 我知道ECS会自动水平扩展docker容器,如果我要在ECS上启动一个WS-server项目并让它将另一个实例扩展到服务,AWS

我刚刚开始理解和解决这个问题

js的Socket.io或Go的Gorilla websocket解决方案每个实例都有一个连接池。因此,在每个实例中,我可以说“向客户机xxx发送消息”

但是,当我尝试水平扩展(通过生成其他实例)时,每个实例都有自己的客户端连接池,因此尝试向连接到另一个实例的特定客户端发送消息失败。我假设这是因为当前实例没有访问该实例的连接/内存池的权限

我知道ECS会自动水平扩展docker容器,如果我要在ECS上启动一个WS-server项目并让它将另一个实例扩展到服务,AWS会神奇地处理套接字服务器实例之间的对话吗?还是我必须根据MDN来处理

WebSocket是一种先进的技术,它可以在用户的浏览器和服务器之间打开交互式通信会话

这意味着每个websocket都是到特定服务器的持久连接。为了向位于不同服务器中的套接字发出事件,您需要一个适配器。例如,如果您使用的是Socket.io,您可以查看


另一方面,为了平衡负载,您可以使用应用程序负载平衡器(ALB),它支持ECS中的websocket和容器化应用程序。

AWS不会将websocket会话固定到特定实例。要搜索的关键词:AWS ALB(支持WebSocket)、SocketCluster。