当我在顶部菜单中显示通知时出现一个小图标,现在我正试图弄清楚SOF是如何做到这一点的。我认为它可以使用AJAX每秒检查服务器,这是有道理的,但有1000+用户它会超载我认为的服务器,有人可以告诉我,如果我是对的,让我知道如何使用技术像SOF一样实时推送而不破坏服务器
答案 0 :(得分:4)
您应该考虑使用WebSocket技术。它适用于最新的浏览器(Chrome,Firefox和Safari),并允许服务器将更改推送到浏览器。但是,Internet Explorer不支持它,因此对于该浏览器,Ajax轮询几乎是唯一的选择。
答案 1 :(得分:0)
我建议使用事件源,与AJAX Comet不同,没有长期保持开放连接,因此您更有能力处理更多客户。
/* Event Source Code */
// Initial Startup
if (!!window.EventSource) {
var source = new EventSource('EventSource.php');
// Native EventSource Events
source.addEventListener('open', function(e) {
// Connection was opened.
}, false);
source.addEventListener('error', function(e) {
if (e.readyState == EventSource.CLOSED) {
// Connection was closed.
}
}, false);
source.addEventListener('message', function(e) {
// You'll have to make your own banner function here.
// e.data, this is what you'll need.
}, false);
}