javascript - socket io - 它如何知道数据库中的数据是否已更改?

标签 javascript node.js angular websocket socket.io

在我的 Angular5/NodeJS 网络应用程序中,我们有一个需要实时数据的仪表板。

如果数据库中有任何数据变化,我们希望它立即反射(reflect)在前端。目前,我们会定期(比如 30 秒)重新加载数据。

socket.io 可以帮助实现这一目标吗?

不确定,它如何知道数据库中是否有任何数据更改?

最佳答案

您可以使用 HTML5 中的 SSE(服务器发送事件)功能。

服务器发送事件 (SSE) 是一种标准,描述了在建立初始客户端连接后服务器如何向客户端发起数据传输。它们通常用于向浏览器客户端发送消息更新或连续数据流,旨在通过名为 EventSource 的 JavaScript API 增强 native 跨浏览器流式传输,客户端通过该 API 请求特定 URL 以接收事件流。

Here is simple example

由于 SSE 是单向的,它将节省工作量并提高性能,因为您只想将数据库更新发送到前端,即仅单向。

希望对您有所帮助。

关于javascript - socket io - 它如何知道数据库中的数据是否已更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50835955/

相关文章:

javascript - 您可以将 FileInterceptor 与 TransformPipe 一起使用吗

angular - 如何在 Angular 2 Material Design 中使 MdDialog 可拖动(可移动)

angular - 将 Spring boot 服务器和 Angular CLI 应用程序集成到单个可执行文件中

javascript - 来自 javascript 的带有发布数据的新 Razor 页面

javascript - 无法在 JEST 的 IF 语句中读取 undefined object 的属性

javascript - <script src...> 如何让其他文件访问它们导入的库?

javascript - 如何使用这些异步函数在 JavaScript 中处理 MySQL 查询?

angular - 如何在使用 Angular 的 Electron 应用程序中使用代码覆盖率?

javascript - 何时使用 AngularJS 1.5 中引入的一次性绑定(bind)(即 `<` )?

javascript - 在 React JS 中的组件之间切换