使用AJAX和PHP检查新消息。服务器超载?

时间:2017-12-01 作者:Some Guy

我写了一个脚本(可能不太完美,我是新手)每X分钟检查一次新消息(使用ArrowChat和Buddypress)。

它工作得很好,但我担心它会使我的服务器过载吗?它是共享的。

代码:

PHP

// Prepare database
global $wpdb;
$wpdb->prepare;

// Check are there new messages
$query = $wpdb->get_results( \'SELECT `id` FROM `arrowchat` WHERE `to` = "\'.$_GET["user_id"].\'" AND `user_read` = "0" AND `read` = "0"\');

// Count messages
$x = 0;
foreach( $query as $msg ) {
  $x = $x + 1;
}
// If there are new messages, echo their number
if(!empty($query)) {
  echo $x;
}
JS:

<script>
function checkMessages() {
jQuery.ajax({
    type: "GET",
    url: "https://twobytwo.com.hr/check-new-msg.php?user_id=\'(PHP user id var)\'",
    dataType: "html",
    success: function(response) {
        jQuery(".kleo-open-chat > .count").html(response);
    }
});
}
setInterval(checkMessages(), 600000);
</script>
提前谢谢。

1 个回复
SO网友:Some Guy

谢谢你的帮助。我用另一种方式做了。我相信将来会有更多的用户,它不会超载。

我会尽力解释,但如果有人需要代码方面的帮助,我愿意提供帮助。


在“send\\u message.php”文件中,在数据库插入之后,我添加了一段代码,创建一个新的空文本文件,并将接收用户id作为名称。

在“receive\\u user.php”文件中,在数据库更新(消息读取)后,我还添加了一段代码,但这段代码从上面删除了相同的文本文件。

最后,AJAX使用的PHP代码检查文件名为登录用户id的文本文件是否存在。如果是,则会回显1。


如您所见,没有固定的数据库检查。

结束