api - 使用 websockets 设计 API 的最佳方式是什么?

标签 api rest design-patterns websocket

我目前正在尝试制作一个聊天应用程序。我想知道我应该如何设计我的服务器端。我计划有一些模式——消息、用户、组。我对如何进行设计有一些想法:

  1. 没有 API,只有 websocket 通信。这将是理想的,但从数据库编辑内容等操作并不容易。
  2. 我只使用 websocket 告诉客户端有更新,并告诉它获取新数据的 URL。这会更容易,但我不确定这是否可行。

我对 websockets 很陌生,想听听您的建议。如果你有更好的后端设计请告诉我。如果您需要了解 - 我计划在服务器上使用 JavaScript。

最佳答案

在我看来,最好同时使用两者。他们有不同的目标。 WebSocket 可用于:

  • 发送服务器推送数据。
  • 从客户端向服务器发送少量数据,您经常这样做

可以使用 REST:

  • 当您使用服务器端框架时
  • 当你不想一直打开你的 websocket 时。因此您的服务器将具有更大的可扩展性
  • 你确实想避免不活跃的长时间连接

更新

WebSockets 使您的连接保持事件状态。这样您就可以毫不延迟地收到您的消息。但这样做的代价是服务器的可扩展性。 REST 可用于上传图片。

关于api - 使用 websockets 设计 API 的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74267305/

相关文章:

java - @RestController bean 在根上下文中注册,尽管被排除在 exceptFilters 中

c# - 你如何在工厂中实现构造函数注入(inject)?

java - 使用 Python 创建和实现接口(interface)?

javascript - 如何在 JavaScript 中向 ContextualWeb 图像搜索 API 发出 GET 请求?

php - YouTube API videoEntry计数评论

javascript - Facebook 访问 token 在每次页面加载时都会发生变化

php - 无法使用 PHP 存储 Instagram API access_token

java - 在 Java REST Web 服务中访问部分多部分/表单数据发布请求

javascript - Angularjs $http.get 不起作用

c# - 如何检查默认的 DateTime 值?