当我在顶部菜单中有通知时会出现一个小图标,现在我正试图弄清楚 SOF 是如何做到的。我认为它可能使用 AJAX 每秒检查服务器,这是有道理的,但是如果有 1000 多个用户,它会使我认为的服务器超载,有人可以告诉我我是否正确,并让我知道如何使用技术像 SOF 一样在不破坏服务器的情况下进行实时推送
问问题
318 次
2 回答
4
您应该考虑使用WebSocket技术。它适用于最新的浏览器(Chrome、Firefox 和 Safari),并允许服务器将更改推送到浏览器。但是,Internet Explorer 不支持它,因此对于该浏览器,Ajax 轮询几乎是唯一的选择。
于 2012-05-11T20:07:32.790 回答
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);
}
于 2012-05-11T21:03:28.790 回答