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的主要内容,如果未能解决你的问题,请参考以下文章

week12 201621044079 流与文件

作业12-流与文件

作业12-流与文件

作业12-流与文件

java 作业12-流与文件

Mongodb - 更改数据库名称