Php &引用;“实时通知”;费奥

Php &引用;“实时通知”;费奥,php,ajax,server,Php,Ajax,Server,我想为我的用户添加“实时通知”功能:当他们收到新消息时(通过聊天系统),然后在导航栏的聊天图标上显示通知徽章 我正在考虑这样做:使用setInterval进行AJAX调用:(如这里的另一篇文章所示) AJAX调用: setInterval('checkUpdates', 2000); function checkUpdates() { $.get('/check_updates.php?timestamp=' . lastTime, function (results){ // d

我想为我的用户添加“实时通知”功能:当他们收到新消息时(通过聊天系统),然后在导航栏的聊天图标上显示通知徽章

我正在考虑这样做:使用setInterval进行AJAX调用:(如这里的另一篇文章所示)

AJAX调用:

setInterval('checkUpdates', 2000);
function checkUpdates() {
   $.get('/check_updates.php?timestamp=' . lastTime, function (results){
    // do stuff here
    }
);
PHP代码:

$timestamp = $_REQUEST['timestamp'];
$results = query('SELECT message FROM messages WHERE messageTime > "$timestamp"');
echo fetch($results);
我之前有几个问题:

1) 由于我希望不断运行更新检查,并且navbar始终存在(始终位于页面顶部),navbar.php文件是放置AJAX调用的正确位置吗

2) 让AJAX调用每2秒持续运行一次,这会对网站的性能造成多大的影响

3) 有更好的办法吗?像Facebook这样的网站有没有一种有效的方法,可以在你收到新消息时立即弹出聊天窗口,还是因为他们有大量的服务器


谢谢

调查web套接字或服务器端事件。重复的AJAX调用规模非常大,只适合在任何中等规模上使用您自己的服务器。是的,这就是我的建议,尽管这将是一个相当大的变化,而且范围太广,无法真正进入这里。特别是使用PHP作为后端,这将是一场艰苦的战斗,您可能无法使用大多数标准的共享托管提供商来托管基于web套接字的PHP站点。所以,嗯,是的…如果你想做得好,准备做一些学习。你可以使用NodeJS:因为你使用的是PHP,这是Ratchet上的一个聊天系统示例。当然,你可以在服务器端代码中做任何你想做的事。