1

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

我能够使用 Node.JS 和 Socket.io 为站点(客户端到客户端)创建实时聊天,但我在如何创建由节点(数据库到客户端)驱动的通知系统方面非常挣扎。

主要问题:

  1. 有没有办法在将新记录插入 MySQL 数据库时基本上让节点事件监听?

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

非常感谢你。任何例子将不胜感激!

4

1 回答 1

1

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

但我假设您使用 mysql 和 php,所以您需要某种触发标志或 ... 来通知 node.js 。

我对您的应用程序及其工作原理知之甚少,但我所做的是,我使用 ajax 在数据库中插入记录,然后通知 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 - 可能没有!

于 2012-10-13T06:38:12.907 回答