Web浏览器作为Web服务器

bri*_*n h 5 browser connection networking synchronization

抱歉,这是一个愚蠢的问题,已经被问到了,但我什至不知道最好搜索哪个术语。

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

令人担心的是,互联网连接可能参差不齐。我知道我可以将客户端更改存储在本地,然后在恢复连接后将其全部推送到服务器。但是,问题在于某些客户端(显示系统)将需要显示来自其他客户端(移动输入系统)的最新数据。如果互联网中断一两分钟,那将是无法接受的。

我目前的思路是,本地网络需要某种“ ThinServer”,所有客户端都可以连接到该服务器。然后,该ThinServer将充当主云服务器的代理。如果互联网中断,则ThinServer将接管同步数据的工作。由于所有客户端都是完整的SPA,因此移动的唯一内容就是数据-因此ThinServer确实只需要同步数据库信息(它可能不需要托管完整的SPA-不过,这并不是一个完整的SPA。坏事)。

但是,对于大多数公司而言,配备完整的专用服务器显然是一大障碍。

所以问题是,是否有任何技术可以让网页充当网络服务器?是否可以指示企业thinserver.coolapp.com在其任何一台计算机上的浏览器中进行访问?然后,该“网页”将显示“该网络中的所有客户端都应连接到192.168.1.74:2000”(这是运行此页面的计算机的IP:端口)。然后,所有客户端都将连接到该新的“服务器”,并且如果Internet中断,该服务器将充当数据协调器。

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

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

感谢您的任何想法!

Mic*_*ick 7

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

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

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

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

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