繁体   English   中英

为在表中插入新的mysql记录时创建Node.js事件侦听器(用于通知Feed)

[英]Creating a Node.js event listener for when there is a new mysql record inserted into table (For Notification Feed)

我正在Codeigniter中编写一个PHP Web应用程序,该应用程序需要具有实时功能。 具体来说,我正在开发的两个实时功能是实时聊天和实时通知提要。

我能够使用Node.JS和Socket.io为站点(客户端到客户端)创建实时聊天,但是我在如何创建由节点(数据库到客户端)支持的通知系统方面付出了巨大的努力。

主要问题:

  1. 当新记录插入到MySQL数据库中时,是否有一种基本上让节点事件监听的方法?

  2. Node.js可以执行长时间轮询以检查数据库是否有新记录吗? 如果是这样,使用Node.js进行长时间轮询是否会比更传统的轮询方法更有效?

提前非常感谢您。 任何例子将不胜感激!

1-它取决于您的数据库和使用的语言/技术。 您可以使用MongoDB和node.js本身将记录插入db中。

但是我假设您使用mysql和php,因此您需要某种形式的flag或...触发器来通知node.js。

我对您的应用程序及其运行方式知之甚少,但我的工作是,我使用ajax在db中插入记录,然后通知node.js。

function new_record()
{
     $.post('<?php echo base_url(); ?>/record/add_newrecord' , {data:data} , function(res){

        if($.trim(res) == 'ok' )
        {
            if (typeof io !== 'undefined') 
            {
                  var socket = io.connect('http://localhost:6666');
                  socket.emit('new_record_ADDED' , { data : data });
            }
        }
}

或者您可以在插入记录后直接在您的php脚本中执行此部分

        if (typeof io !== 'undefined') 
        {
              var socket = io.connect('http://localhost:6666');
              socket.emit('new_record_ADDED' , { data : data });
        }

2-可能没有!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM