gpt4 book ai didi

networking - Web 浏览器作为 Web 服务器

转载 作者:行者123 更新时间:2023-12-04 19:06:01 25 4
gpt4 key购买 nike

对不起,如果这是一个已经被问到的愚蠢问题,但我什至不知道最好搜索什么术语。

我有一种情况,云应用程序会将 SPA(单页应用程序)交付给客户端 Web 浏览器。多个客户端会同时连接,并且都在同一个网络中工作。一个例子是一个企业用来协同工作的应用程序 - 都在同一个物理空间内(都在同一个网络上)。

一个问题是互联网连接可能不稳定。我知道我可以在本地存储客户端更改,然后在连接恢复后将它们全部推送到服务器。然而,问题在于某些客户端(显示系统)需要显示来自其他客户端(移动输入系统)的最新数据。如果互联网中断一两分钟,那将是 Not Acceptable 。

我目前的想法是本地网络需要某种所有客户端都可以连接的“ThinServer”。然后,此 ThinServer 将用作主云服务器的代理。如果 Internet 中断,则 ThinServer 将接管同步数据的工作。由于所有客户端都是完整的 SPA,唯一需要移动的就是数据——所以 ThinServer 真的只需要同步数据库信息(它可能不需要托管完整的 SPA——不过,那不会是一个坏事)。

然而,对于大多数公司来说,一个完整的专用服务器显然是一个很大的障碍。

所以问题是,有没有什么技术可以让网页充当网络服务器?是否可以指示企业在其任何一台机器上的浏览器中转到 thinserver.coolapp.com?这个“网页”然后会说,“这个网络中的所有客户端都应该连接到 192.168.1.74:2000”(这将是运行这个页面的机器的 IP:端口)。然后所有客户端都将连接到这个新的“服务器”,如果互联网出现故障,该服务器将充当数据协调器。

换句话说,我真的不喜欢复杂的服务器设置的想法。只需要一个简单的 URL 来启动服务。

我想唯一的选择可能是需要安装的二进制程序?这不是一个理想的解决方案——但也许是唯一的解决方案?如果是这样,他们的任何程序都是单击 Web 服务器吗?我尝试过 MAMP、LAMP 等,但它们都是为开发人员设计的。还有其他更精简的吗?

感谢您的任何想法!

最佳答案

有几种基本的方法可以解决这个问题。第一种是按照您的建议在浏览器中托管服务器。一些示例项目:

  • http://www.peer-server.com
  • https://addons.mozilla.org/en-US/firefox/addon/browser-server/

  • 另一种方法是使用 WebRTC 点对点通信以允许浏览器在彼此之间共享信息(您可以让它们全部共享日期或让一个人充当“主人”等,从而深化您想要的架构)。它在皮肤下可能不会有那么大的不同,但您的应用程序设计可能更适合更“点对点”的模型或更“客户端服务器”的模型,具体取决于您的需要。 “点对点”项目示例:
  • https://developer.mozilla.org/en-US/docs/Web/Guide/API/WebRTC/Peer-to-peer_communications_with_WebRTC

  • 我个人没有使用过上述任何一种,但我会说,从过去使用类似的浏览器扩展机制来看,您需要先检查浏览器要求,然后再决定它们是否可以执行您想要的操作。上面的第一个是基于 Chrome 的(我相信),第二个是 Firefox。点对点包含一系列兼容的浏览器功能,但实际上也基于 Firefox 和 Chrome(请参阅链接中的表格)。如果您处于可以指定浏览器类型和插件等的环境中,那么这对您来说可能没问题。

    这个概念绝对非常有趣(点对点 Web 服务器),如果您有时间探索它,那就太好了。但是,如果您有直接的业务需求,那么基于站点服务器的简单方法实际上可能更可靠,支持更多种类的浏览器并且实际上更易于维护(因为所需的技能非常普遍)。

    顺便说一句,我应该说 - 'WebRTC' 对您来说可能是一个很好的搜索词,以回答您问题的第一行。

    关于networking - Web 浏览器作为 Web 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24249156/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com