2014-06-16 196 views
1

很抱歉,如果这是一个已经被问到的愚蠢问题,但我甚至不知道哪些条款可以最好地搜索。Web浏览器作为Web服务器

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

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

我目前的想法是,本地网络需要某种“瘦服务器”,所有客户端将连接到。然后,此ThinServer将作为主要云服务器的代理。如果互联网出现故障,ThinServer将接管同步数据的工作。由于所有的客户端都是完整的SPA,因此移动的唯一数据就是数据 - 所以ThinServer实际上只需要同步数据库信息(它可能不需要托管整个SPA-尽管如此,这不会是一个坏事)。

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

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

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

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

感谢您的任何想法!

回答

2

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

另一种是使用的WebRTC点对点通信,使浏览器共享彼此之间的信息(你可以有他们所有份额的日期或有一个扮演“大师”等角色,加深他不想要的架构)。它可能不会在皮肤下有所不同,但是根据您的需要,您的应用程序设计可能更适合更“点对点”模式或更多“客户端服务器”模式。一个例子“点对点”项目:

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

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

顺便说一句,我应该说 - 'WebRTC'可能是一个很好的搜索术语,用于回答你的问题的第一行。

+0

谢谢!这是更好的信息,然后我意识到是可用的。我听说过RTC,但认为它只是视频 - 现在阅读它,听起来像点对点数据也是非常棒的。但是,你说得对,现在安装服务器可能会更容易。我会继续研究。非常感谢您的意见! –

+0

祝你好运!如果您发现可靠的点对点解决方案,您可能可以在此处更新评论或其他答案。 – Mick

+0

我会的。到目前为止,WebRTC似乎是最好的选择,因为我可以“强制”用户使用特定的机器和浏览器。再次感谢。 –