栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

与多个Chrome Docker容器进行Websocket通信

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

与多个Chrome Docker容器进行Websocket通信

您的基本设计正确,但是您遇到的问题是会话“粘性”。但是,与其尝试将后续请求重新路由回适当的计算机,不如寻找一种避免“预”请求的方法。

最好的方法是让您的Chrome泊坞窗图片位于所有http“升级”请求的中间人。此http动作是所有WebSocket连接在更改协议(包括puppeteer库,它只是一个WebSocket客户端)之前发出的内容。这样做还可以避免进行预连接呼叫,因为到Chrome的代理将发生在升级过程中,而不是公开要使用的URL。这是使用http-
proxy
模块执行此操作的一个非常基本的示例:

const http = require('http');const httpProxy = require('http-proxy');const proxy = new httpProxy.createProxyServer();http  .createServer()  .on('upgrade', async(req, socket, head) => {      const browser = await puppeteer.launch();      const target = browser.wsEndpoint();      proxyy.ws(req, socket, head, { target })  })  .listen(3000);

这种方法还有其他好处:您可以限制诸如并发之类的内容,甚至可以注入脚本以在以后运行。这些虽然需要更多和准备,但总体思路仍然相同。这也使负载平衡变得微不足道,因为不需要使路由变得固定。

如果这是您感兴趣的事情,那么您可以在无浏览器的存储库中为您完成所有工作。它甚至允许诸如并发限制,会话时间限制之类的功能,并包括功能丰富的IDE。您可以在此处找到有关该项目的更多文档。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/368231.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号