使用WebSockets替换API调用可能有什么缺点?

时间:2018-02-07 03:59:05

标签: rest websocket

所以我打算建立一个单页面应用程序。在该应用程序中,将会有很多API调用,并且非常频繁地符合我们的预期。

所以我们考虑了前面的API调用并完全用WebSockets替换它。因此,我们计划如何开展此项工作的方式如下:

  1. 我们为客户可以请求的每个资源指定一个特殊代码(或套接字消息类型)。
  2. 客户端通过websocket连接到服务器。
  3. 对于客户端需要的每个资源/数据,它会使用预定义的代码向服务器发送消息。
  4. 服务器处理请求并将响应发送回客户端。
  5. 客户端和服务器保持连接打开,任何将来的请求都通过同一个套接字进行通信。
  6. 我们希望通过这种方法减少开销和延迟,但这是正确的假设吗? 另外,使用这种机制可能会有什么陷阱?

1 个答案:

答案 0 :(得分:0)

如果您正在编写消息传递应用程序或游戏,则WebSockets更受欢迎。 如果您的应用经常访问数据库,则可以考虑服务器已发送事件

WebSockets在客户端和客户端之间进行双向通信。一台服务器。您可能不一定需要websockets。

WebSockets可能看起来像HTTP,但仅限于开始。它不是HTTP。在协议设计中可能没有考虑到可能的副作用。 它们在用户与页面交互的持续时间内保持服务器上的连接打开。这将增加对服务器的需求,这意味着您将始终必须缩放OUT而不是UP。 如果没有msging应用程序或游戏,我相信WebSockets是一个不太经济的选择。

相关链接

https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events

Twitter's method for streaming API on w3c

WebSockets vs. Server-Sent events/EventSource