我正在尝试使用 PubNub 建立一个系统,用于将简单的实时消息从我的 Web 服务器推送到客户端。我在 Heroku 上运行 Django。
特别是,我对如何在服务器和客户端之间建立通道感兴趣,这需要在两者之间共享一个唯一的通道 id。
我们的网站是一种社交网站——很多用户会同时登录。我们只想在他们收到新消息或好友请求之类的信息时更新他们的界面,而无需刷新。
我知道该怎么做,但我认为可能有一些我不知道的最佳实践,所以我想获得一些反馈。
- 登录时,客户端发布到 API 端点
- 这个 POST 的处理函数检查数据库中是否已经有这个用户的频道 ID 记录。
- 如果是这样,它会使用新的频道 ID(即 UUID)更新记录。如果没有,它会使用该用户的 ID 和频道 ID 创建一条新记录。
- 将频道 ID 返回给用户。
- 注销时,此记录将被删除。
从技术上讲,我担心这违反了 REST 原则。对 API 端点的单一调用既可以创建数据服务器端(如 POST),也可以将数据返回给客户端(如 GET)。
对于相关最佳实践的任何想法,我将不胜感激。谢谢!