php - 每当数据库更新时,socket.io 都会推送数据

标签 php mysql node.js socket.io

我正在编写一个 websocket 应用程序,只要数据库条目发生更改,它就会将数据推送到我的 php 文件。现在,作为一个非常基本的开始,我设置了一个间隔计时器,并每 20 秒推送一次给客户端,无论是否有更改(这些字段只是用于玩弄 - 密码...):

服务器端:

setInterval(pushData, 20000);

function pushData() {
    connection.query('SELECT * FROM testtable WHERE username="michael"', function(err,rows,fields) {
       if (err) throw err;
        io.emit('newdata', rows[0].password);

    });
}

客户端 PHP 脚本:

socket.on('newdata', function(msg) {
    var data = document.getElementById('dataentries');
    data.innerHTML = msg;
    });

仅当数据库条目发生更改时查询和更新的最佳实践方法是什么?我可以设置从mysql到node.js的触发器吗?

最佳答案

最简单也是合法的方法是首先查询数据,检查它们是否已更改,然后进行更改并向客户端发送消息。如果没有改变,则不要进行更新。

关于php - 每当数据库更新时,socket.io 都会推送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27444866/

相关文章:

node.js - NodeJS JSON 架构验证不起作用

php - 在调用它之前检查是否存在被覆盖的父方法

php - 使用 Timber Twig 在 Wordpress 中自定义 php 文件目录

php - 如何使用 PHP 检测 Mobile Safari 服务器端?

php - 在 where 中连接两列

javascript - 尝试上传到 Amazon S3 时出现 "Unsupported body payload object"

javascript - 此浏览器不支持使用 firebase SDK 所需的 API

php - XMLHttpRequest 到 PHP 脚本 - 这里缺少什么?

MySQL - 准备好的语句不返回完整查询

MySQL 在连接表上强制索引 - 当优化器首先从连接表中选择时