Web 应用程序在过去几年中经历了巨大的范式转变。
十年前(不幸的是,即使是现在),Web 应用程序只存在于重量级的服务器中,处理从数据到表示格式的所有内容,并发送到只呈现服务器(浏览器)输出的愚蠢客户端。
然后 AJAX 加入了游戏,Web 应用程序开始变成存在于服务器和浏览器之间的东西。
在 AJAX 的高潮期间,Web 应用程序逻辑开始完全依赖于浏览器。我认为这是 HTTP RESTful API 开始出现的时候。突然之间,每一项新服务都有其类型的RESTful API,突然之间,JavaScript MV* 框架开始像爆米花一样突然出现。移动设备的使用也大大增加,REST 非常适合这类场景。我在这里说“一种 RESTful”,因为几乎所有声称是 REST 的 API 都不是。但这是一个完全不同的故事。
事实上,我成了某种“ REST 布道者”。
当我认为 Web 应用程序无法进一步发展时,一个新时代似乎正在来临:有状态的持久连接 Web 应用程序。 Meteor是此类应用程序的出色框架的一个示例。然后我看到了这个视频。在这段视频中,Matt Debergalis 谈到了 Meteor,两者都做得非常出色!然而,他出于这种目的而降低了 REST API,以支持持久的实时连接。
例如,我非常希望有实时模型更新,但仍然拥有所有 REST 的魅力。 流式 REST API似乎是我所需要的(例如 firehose.io 和 Twitter 的 API),但是关于这种新型 API 的信息很少。
所以我的问题是:
基于 Web 的实时通信与 REST 范式不兼容吗?
(很抱歉介绍性文字很长,但我认为这个问题只有在某些情况下才有意义)