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