请注意 ,这是不同的,因为我希望Javascript接收它。
即使我以后必须切换到套接字,我也想知道如何使用这种方法。虽然我以后可能会切换到推送方法,但目前不感兴趣
原因是我想减少使用的服务器资源,因为我的聊天目前每 500 毫秒检查一次消息,这太糟糕了;但是,这是必要的,因为我的一些用户一直在键入消息,但有些用户只计时例如每 2 分钟一条消息。因此,我想知道如何获取数据库最后一个条目的时间戳,以确定他们是否在最后说 30 秒内发送了消息,然后每 10 秒检索一次消息。如果他们在过去 2 分钟内发送了一个,请每 30 秒检查一次,但如果他们非常活跃,请增加时间间隔。点是根据活动确定间隔。我已经超过我的 CPU 一次了,我也想尝试一下。我可能不得不切换到套接字,我没有任何经验。
如果我碰巧得到了时间戳;我该如何处理带有时间的时间戳?
时间戳 - time() = 以毫秒为单位的时间?
例如,我可以像这样将时间戳设置为cookie吗?
.js:
$(document).ready(function(){
document.cookie...
var getMsg = function(){
$.ajax {
url: php.php,
...
}
}
if(document.cookie < 30 secs){
var time = 500;
}
setInterval(time, getMsg)
});
PHP.php:
<?php
...
setCookie("timestamp data");
...
与其一直池化服务器,不如做相反的事情 - 当应用程序将消息插入数据库时,您会向客户端发送消息。
WebSockets就是答案。
已经构建了一些库,使其易于使用:
- ASP.Net SignalR,如果您使用的是Microsoft堆栈(使用、工作和很简单);
- Socket.IO,如果您使用的是 NodeJS(也使用,有效且很简单);
- Ratchet,用于 php(从未使用过)
- 你也可以使用流星
- 其他,取决于您使用的技术