我正在编写一个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);
});
}
CLIENT PHP SCRIPT:
socket.on('newdata', function(msg) {
var data = document.getElementById('dataentries');
data.innerHTML = msg;
});
仅当数据库条目发生变化时,查询和更新的最佳实践方法是什么?我可以设置从mysql到node.js的触发器吗?
答案 0 :(得分:2)
最简单的方法也是合法的方法,首先查询数据,检查数据是否已更改,然后进行更改并向客户端发送消息。如果没有改变,请不要进行更新。
答案 1 :(得分:2)
假设您在服务器应用程序中使用ORM
- 我会将广播逻辑放入POST_SAVE
挂钩。
如果您不拥有该应用程序,但可以访问数据库配置 - 这就是诀窍。