每当数据库字段更改时,都会将数据推送到客户端

时间:2016-04-03 12:45:53

标签: mysql node.js sockets

我正在使用double *temp = new double[tmp]();从我的数据库向客户端发送数据。但是我的代码每秒都会向客户端发送数据,即使数据是相同的。如果仅在db中的字段不是每1秒更改一次,我该如何发送数据。

这是我的代码:http://pastebin.com/kiTNHgnu

1 个答案:

答案 0 :(得分:1)

使用MySQL,没有简单/简单的方法来获得变更通知。有两个选项包括:

  • 如果您可以访问运行数据库的服务器,则可以通过某种解析器流式传输MySQL的binlog,然后检查修改所需表/列的事件。如果你想走这条路,npm上已经有这样的binlog解析器了。

  • 使用MySQL触发器调用UDF(用户定义的函数)。这有点棘手,因为没有很多这些可以满足您的特殊需求。然而,有一些可能有用,例如mysql2redis推送到Redis队列,如果你已经在某处安装了Redis,它将会工作。对于支持该有线格式的各种队列实现,有STOMP UDF。还有其他UDF,例如log_error写入文件,sys_exec执行服务器上的任意命令(显然很危险,所以它应该是绝对的最后手段)。如果这些都不适合您,您可能必须编写自己的UDF,如果您还不熟悉UDF C接口,则需要花费很长时间(根据经验说)。

    我还应该注意,UDF 可以在触发的查询中引入延迟,具体取决于UDF执行的时间。