浅谈 Server Push 技术

服务器推送(Server push)之前一直是一个很热门的话题,最近也是兴趣所致,想研究下到底有多神奇,起初最先考虑到的是javascript的reload(),定时刷新,不过这样的方案很快就否定了,无疑这是找死。 而后很自然的就想到了利用Ajax技术,可是根本问题是Server不会自动给客户端发送信息,一味这必须模块一个reuqest给Server,然后才可以通信,于是乎,开始了一个漫长的旅程....

通过强大的Google,下来了pushlet框架的一些例子,看完之后有点不可思议,代码中出现了很多神奇的东西

if (PL.state < PL.STATE_LISTENING) {
				PL._setStatus('not refreshing state=' + PL.STATE_LISTENING);
			}
			var timeout = event.get('p_wait');
			setTimeout(function () {
				PL._doRequest('refresh');
			}, timeout);
			return;

 ...

.....

_showStatus: function() {
		// To show progress
		if (PL.statusChanged == true) {
			if (PL.statusChar == '|') PL.statusChar = '/';
			else if (PL.statusChar == '/') PL.statusChar = '--';
			else if (PL.statusChar == '--') PL.statusChar = '\\';
			else PL.statusChar = '|';
			PL.statusChanged = false;
		}
		window.defaultStatus = PL.statusMsg;
		window.status = PL.statusMsg + '  ' + PL.statusChar;
		timeout = window.setTimeout('PL._showStatus()', 400);
	},

 原来它们也是一个伪推送,只不过是先进行一个请求,然后向服务器注册一个key,然后服务器容器返回key和一个time,然后ajax-pushlet-client.js再根据time请求,当服务器有消息推送时,就会根据key发送到view。

 

pushlet的大致原理其实就是这样....

 

哎....

 

(以上只是个人的部分看法)

 

 

 

 

 

 

你可能感兴趣的:(server)