【问题标题】:Using NodeJS for real time live updating view using database使用 NodeJS 使用数据库进行实时实时更新视图
【发布时间】:2011-11-27 06:02:35
【问题描述】:

我一直在玩 Nodejs,现在想知道我是否可以为视图/页面创建实时更新,如 tutorial here 所示

上面的示例将适用于站点上的所有用户,我想要的是将我的更新定位到某些用户。

我是否创建一个数组来存储所有客户端套接字,当用户登录时创建一个套接字。

另一件事如果数据库中的某些内容已更新,我如何更新网页或视图,我是否每秒轮询一次服务器?

我使用 MySQL 有数据库,我应该使用 Redis 代替吗?

编辑:还有一个问题,我想知道 nodejs 如何检查数据库字段是否已更新或更改,而不是更新视图或网页?

谢谢

【问题讨论】:

    标签: php mysql node.js redis long-polling


    【解决方案1】:

    我是否创建一个存储所有客户端套接字的数组,一个套接字是 在用户登录时创建。

    如果您使用socket.io 模块来管理客户端和服务器之间的连接,那么您不必担心结构或存储的客户端,因为它会在后台为您管理。如果客户端浏览器不支持 WebSockets 等高级传输,它还提供各种回退(包括长轮询)。

    另一件事我如何更新网页或视图,如果有的话 数据库中已经更新了,我要每秒轮询一次服务器吗?

    不要每秒轮询服务器,因为引入了长轮询和 WebSockets 等传输来避免这种情况。由于您将使用 socket.io(使用长轮询或 WebSockets 等技术和技术)在客户端和服务器之间建立持久连接,因此您可以相当轻松地创建事件系统,该系统在当时更新或通知某些客户端有关更改当它发生时。

    我使用 MySQL 有数据库,我应该使用 Redis 代替吗?

    Redis 是非常好的 Key/Value 存储,可用于不需要复杂查询的实时、频繁更新的数据。如果您需要对数据的高级查询支持,请尝试查看 MongoDB 示例。

    【讨论】:

    • 我认为他指的是用第二个引用每秒轮询数据库。 (这也是一个坏主意)。我认为这就是他正在寻找的东西,假设他没有使用提供类似事件挂钩的 ORM:dev.mysql.com/doc/refman/5.0/en/triggers.html
    猜你喜欢
    • 2020-10-18
    • 1970-01-01
    • 2018-03-28
    • 2019-11-25
    • 2013-05-03
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    相关资源
    最近更新 更多