从数据库中获取字段的实时值(Mysql)

Posted

技术标签:

【中文标题】从数据库中获取字段的实时值(Mysql)【英文标题】:Get the real-time value of a field from a database (Mysql) 【发布时间】:2020-07-06 08:15:42 【问题描述】:

我已经创建了一个包含 html5、CSS3、javascript/jquery、phpmysql 的网站……我正在考虑实时实现一个功能。

根据数据库字段 (mysql) 的值,在 Web 上显示一个或另一个图像。我也想过创建一个通知系统:如果一个mysql字段有一定的值,就给用户发送一个通知。

问题在于如何在无需用户做任何事情的情况下实时进行。我一直认为也许 websockets 可能是一个不错的选择,但我从未使用过 websockets / Nodejs,我不知道实现 / 使用它是否会很麻烦。

网络有时可以同时拥有大约 1,000 个用户(我使用一个简单的 vps 服务器)

有什么建议吗?

谢谢!

【问题讨论】:

【参考方案1】:

Websockets 与事件和侦听器一起工作。您可以在后端创建一个端点并执行逻辑以从数据库中获取您需要的字段并发出一个将该值发送到前端的事件。然后在此处放置一个侦听器以获取您正在发送的信息,从而保持实时通信。

在此处了解更多信息https://socket.io/

【讨论】:

【参考方案2】:

使用 mysql-events https://www.npmjs.com/package/mysql-events 包。 这会监视 MySQL 数据库并在匹配的事件上运行回调。 基本示例来自文档

var watcher =mysqlEventWatcher.add(
 'myDB.table.field.value',
 function (oldRow, newRow, event) 
    //row inserted
   if (oldRow === null) 
     //insert code goes here
   

    //row deleted
   if (newRow === null) 
    //delete code goes here
   

 //row updated
if (oldRow !== null && newRow !== null) 
  //update code goes here


//detailed event information
//console.log(event)
 , 
    'match this string or regex'
    );

【讨论】:

以上是关于从数据库中获取字段的实时值(Mysql)的主要内容,如果未能解决你的问题,请参考以下文章

从下拉列表中选择数据时,从 MYSQL 数据库中设置输入字段值属性

MYSQL查一个字段中 多个值

从 Firebase 中的实时数据库获取数据后,无法写入 Unity 的 TMPro 文本字段

如何从 firebase 实时数据库中获取数据并更改一个文本字段以表示该特定记录?

MySQL 选择唯一的排序字段值

从选择字段Javascript获取默认值