【问题标题】:Receive update from server with mobile framework使用移动框架从服务器接收更新
【发布时间】:2014-09-29 18:39:45
【问题描述】:

我正在尝试制作一个移动应用程序,我发现 ionic 框架看起来很酷。

似乎 REST 是一种常用的做事方式,我不理解这个协议的一件事。服务器如何通知他有数据要发送。如果我们有一个文本应用程序,服务器如何通知应用程序(没有推送通知,或者它们可能是强制性的?)另一个客户端向您发送了消息?

似乎 REST 只适用于来自客户端的请求。这是否意味着我必须每 X 毫秒发送一次更新请求才能拥有响应式应用程序?我必须为此目的使用 websockets 吗?我也看到Comet,是不是用rest的好方法?

【问题讨论】:

    标签: android rest cordova mobile websocket


    【解决方案1】:

    REST 架构并没有真正解决“发布/订阅”(pub/sub)范式。它比这更粗糙。

    发布/订阅的主要问题是技术问题,尤其是今天。在一个完全连接的互联网中,一切都在已知位置始终在线,那么基本的 REST 架构就可以正常工作。简单来说,Client 和 Server 的角色来回交换(即当需要发送通知时,Server 成为 Client)。

    但这不是真实的世界。

    现实世界是,虽然我们有很多连接的设备,但我们没有很多已知的位置。您的手机一直在移动,谁知道它在任何时候的 IP 地址。 DNS 没有帮助,因为您的手机可能没有以任何特定的已知名称注册。然后是基础架构问题,绝大多数客户端被锁定在他们可以发送消息但无法接收消息的地方,即使我们确实知道他们是谁和在哪里。

    因此,REST 不会仅仅因为它通常违反一些关键属性而探索该领域。

    一个是URL消失了。由于我们不知道您在哪里或是谁,因此我们无法按姓名联系您。因此,人们绕过它的一种方法是通过长期的联系。您的客户端连接到服务器并保持其连接,以便服务器可以回复。但这是一个隐含的有状态连接。 REST 趋向于无状态,并且在架构级别实际上是无连接的。

    因此,在那种环境中,REST 不是一种合适的架构,因为其机制无法支持某些基本规则。

    【讨论】:

    • 谢谢,这是一个很好的解释。您对在 Ionic(或 phonegap)等移动框架中使用什么来代替 REST 有什么建议吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2011-03-28
    • 1970-01-01
    相关资源
    最近更新 更多