MongoDB 更改流与 socket.io
Posted
技术标签:
【中文标题】MongoDB 更改流与 socket.io【英文标题】:MongoDB change stream vs socket.io 【发布时间】:2021-12-29 09:56:18 【问题描述】:我正在开发管理员创建课程并通知用户的功能。我正在考虑使用MongoDB change stream
,但我需要套接字将更改的数据发送到前端。
现在的场景:管理员创建课程,更改流通知,socket.io 将其发送到前端。
我的问题是,如果我们使用 socket.io 将数据发送到前端,那么为什么我们需要 MongoDB 更改流?我们可以做的只是在管理员成功创建课程时发出事件。
我浏览了多篇文章,他们都在做同样的事情——调用 API 来创建和更新文档、观察更改流以及 socket.io 发出事件。
如果我们可以在课程创建后将数据发送到前端,那我们为什么需要 MongoDB Change Stream?
【问题讨论】:
【参考方案1】:您的服务器端代码可能希望将此事件发送到多个目的地和/或触发其他进程。出于安全原因,您需要此事件由服务器端控制。当然,您总是可以依靠客户端发出数据库更新成功的事件,但我仍然会在服务器端检查它。 Mongodb 流将允许您在不依赖客户端的情况下侦听这些事件并采取行动。
【讨论】:
是的,我们不能确定创建/更新只发生在一个 API 上。随着项目的发展,它可能发生在多个 API 和函数上。在这种情况下,集中的 MongoDB 更改流有助于监视数据库的创建/更新。以上是关于MongoDB 更改流与 socket.io的主要内容,如果未能解决你的问题,请参考以下文章