我正在Codeigniter中编写一个需要具有实时功能的PHP Web应用程序。具体来说,我正在开发的两个实时功能是实时聊天,以及实时通知提要。
我能够使用Node.JS和Socket.io为网站(客户端到客户端)创建实时聊天,但我正在努力研究如何创建由节点驱动的通知系统(数据库到客户)。
主要问题:
当新记录插入MySQL数据库时,有没有办法让节点事件监听?
Node.js可以执行长轮询以检查数据库是否有新记录吗?如果是这样,使用Node.js进行长轮询会比更传统的轮询方法更有效吗?
提前非常感谢你。任何例子都将受到高度赞赏!
答案 0 :(得分: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 - 可能没有!