浏览器作为Web服务器httprelay.io的问题

问题描述 投票:5回答:2

如果这是一个已经被问过的愚蠢问题,我很抱歉,但我甚至不知道用什么术语来搜索最好。

我有一个情况,一个云应用会将一个SPA(单页应用)传送到客户端的Web浏览器上。多个客户端会同时连接,并且都在同一个网络中工作。一个例子是一个企业用于共同工作的应用--所有的应用都在同一个物理空间内(都在同一个网络上)。

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

我目前的想法是,本地网络将需要某种 "ThinServer",所有的客户端都将连接到它。这个ThinServer将作为主云服务器的代理。如果互联网中断,那么ThinServer将接管同步数据的工作。由于所有的客户机都是完整的SPA,唯一移动的就是数据--所以ThinServer只需要同步DB信息(它可能不需要托管完整的SPA--虽然,这不是一件坏事)。

然而,一个完整的专用服务器显然是大多数公司设置的一个大障碍。

那么问题是,有没有什么技术可以让网页充当网络服务器呢?能不能指示企业去 thinserver.coolapp.com 浏览器中的任何一台机器上的 "网页"?这个 "网页 "就会说:"这个网络中的所有客户都应该连接到192.168.1.74:2000"(这将是运行这个网页的机器的IP:端口)。然后,所有的客户端都会连接到这个新的 "服务器 "上,如果网络瘫痪,这个服务器就会作为一个数据协调器。

换句话说,我真的不喜欢复杂的服务器设置。一个简单的URL来启动服务就可以了。

我想唯一的选择可能是需要安装一个二进制程序?这不是一个理想的解决方案,但也许是唯一的解决方案?如果是这样,他们有什么程序是一键式的网络服务器吗?我试过MAMP,LAMP等,但它们都是为开发者设计的。有其他更精简的程序吗?

谢谢你的任何想法!

networking browser synchronization connection
2个回答
6
投票

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

另一种是使用WebRTC点对点通信,允许浏览器之间共享信息(你可以让他们都共享日期或有一个作为'主'等深化不是你想要的架构)。它很可能不会有太大的不同,但你的应用设计可能更适合 "点对点 "模型或更多的 "客户端服务器",这取决于你需要什么。一个 "点对点 "项目的例子。

我个人没有使用过以上任何一种,但我想说,从过去使用类似的浏览器扩展机制来看,你需要先检查浏览器的要求,然后再决定它们是否可以做你想要的事情。上面最上面的那个是基于Chrome的(我相信),第二个是Firefox。点对点的那个包含了一个兼容浏览器功能的列表,但实际上也是基于Firefox和Chrome的(见链接中的表格)。如果你在一个环境中,你可以决定浏览器类型和插件等,那么这对你来说可能是确定的。

这个概念绝对是非常有趣的(点对点网络服务器),如果你有时间去探索它,那是非常好的。然而,如果你有一个直接的业务需求,可能一个简单的基于网站服务器的方法实际上可能更可靠,支持更广泛的浏览器,实际上更容易维护(因为所需的技能是相当普遍的)。

另外,我应该说--"WebRTC "对你来说可能是一个很好的搜索词,以回答你问题的第一行。


0
投票

httprelay.io v.s. WebRTC

优点

  • 使用简单
  • 迅速
  • 支持所有浏览器和HTTP客户端
  • 可配合不稳定的网络使用
  • 开源和跨平台

缺点

  • 需要运行一个服务器实例
  • 不支持数据流(尚未)
© www.soinside.com 2019 - 2024. All rights reserved.