【发布时间】:2015-10-04 23:52:27
【问题描述】:
我有一个由 express+mongodb 驱动的 REST API 服务器。有几个端点具有不同的资源。其中之一是聊天 API。我已经有几个基本端点,例如:
-
POST http://api.example.com/v1/chat- 创建聊天 -
POST http://api.example.com/v1/chat/:id/message- 向现有聊天发送消息 -
GET http://api.example.com/v1/chat/:id/messages- 获取指定聊天中的消息
但我需要为 API 使用者提供一种方法,以便在不重新加载页面的情况下实时高效地获取新消息。
现在,正如您所见,可以从客户端轮询 GET 端点,但它似乎性能不佳。 例如,客户端可以有 UI,它会在标题中显示新消息计数(某种通知)。
我在考虑 websocket。例如,是否可以提供像/chat/:id/subscribe 这样的端点,它将代理套接字的服务器并在客户端连接到它?
有没有一些这样的 API 设计的好例子,我可以从中获得灵感,或者你可以给我一些建议?谢谢!
【问题讨论】:
-
似乎是使用 websockets 的好案例。 Socket.io 支持 node.js
标签: node.js api rest websocket chat