【发布时间】:2014-07-24 06:12:46
【问题描述】:
我正在重新设计一个 Web 应用程序,该应用程序以前已在服务器端呈现为单页应用程序,并开始阅读有关 websockets 的信息。 Web 应用程序将使用套接字将新记录和/或消息推送到客户端。我一直想知道为什么大多数使用套接字的页面不处理它们通过套接字的所有通信。大多数时候除了 websocket 之外还有 RESTful 后端。让客户端通过套接字查询新资源是不是一个坏主意?如果是这样,为什么 - 除了 RESTful api 可能更容易与其他设备一起使用?
我可以想象,如果网络连接像在移动设备上那样糟糕,使用 websockets 可能不是最好的主意,但在合理的网络连接情况下,这可能会很好地工作。
我发现了这个相关的问题,但它是从 2011 年开始的,似乎有点过时了: websocket api to replace rest api?
【问题讨论】:
-
在分布式事件源 CQRS + Redux 应用程序的上下文中考虑相同。基本上,从我想要的任何内容中提供静态内容,并仅通过双向 websocket 交换纯动作/事件。目前正在寻找参数,如果我没有外部 API 使用者,为什么我还需要维护 REST API。
-
@Dzintars 我个人的建议是:如果您确实需要通过网络获取数据,请使用大多数网络使用的方式。如果您有充分的理由使用其他东西(例如 WebSockets),那么这样做可能是有意义的。但是,您很有可能还会注册一些边缘案例、浏览器错误以及可能的一些变通方法来修复一些奇怪的事情。如果你的充分理由仍然更重要,那就去吧。至于我:我目前正在花费一些时间来最终摆脱 WebSockets 作为主要通信方式。
标签: websocket single-page-application