日期:2014-05-17  浏览次数:20803 次

[讨论]关于server push技术
刚才看到一个需求,就是那个应届面试的那个
需求是:当一个新用户注册成功后,在已经登陆了的管理员的页面上弹出一个提示。

一般的思路貌似都是:在客户端一个无限循环去读取后台数据库的数据,发现有数据标识的,那么在客户端进行处理

但是这样,会在客户端造成一个死循环。

搜索了一下,发现有一个server push技术,好像有些年头了。可是相关的资料没找到。找到两个例子,也是在后台写一个死循环保持服务器长链接。但是这样会对服务器造成负担。而且有好多时候的负担是没有意义的。

那么这个server push除了这样的死循环方式还有没有别的方法?

vs的水晶报表推模式又是如何实现的呢。

------解决方案--------------------
Asp.net 的服务器推技术
http://topic.csdn.net/u/20081125/17/a3ecaefe-86e6-4ead-80a2-537650b17405.html


http://topic.csdn.net/u/20090622/13/dced6fe3-3fe7-4501-9a81-be20d2f5d504.html
------解决方案--------------------
水晶报表的推或者拉都是指本地操作两种方法,所谓推模式就是你给它设置最终数据对象,而拉就是类似告诉他数据库的连接字符串以及SQL语句然后它自己去登录数据库取数据。可见,根本不涉及你所说的server push。

另一个方面,server push也不是真正的push,只是个假的push。
------解决方案--------------------
探讨

多年前我一个同时说的才对,它是你所说的所谓server push的狂热粉丝(但是在我们的系统中也没有敢那样搞),但是他也只是很客观地把那个叫做hang。

什么是hang?就是拖延、悬挂、消耗、上绞刑架的意思。

------解决方案--------------------
探讨
水晶报表的推或者拉都是指本地操作两种方法,所谓推模式就是你给它设置最终数据对象,而拉就是类似告诉他数据库的连接字符串以及SQL语句然后它自己去登录数据库取数据。可见,根本不涉及你所说的server push。

另一个方面,server push也不是真正的push,只是个假的push。

------解决方案--------------------
每天回帖即可获得10分可用分!
------解决方案--------------------
学习一下……………………
------解决方案--------------------
学习一下……………………
------解决方案--------------------
b/s 是没法做到真正意义上的push, 因为iis 给客户端数据后就关闭了客户端的连接,, 这时候服务器是不知道给谁传数据的.
------解决方案--------------------
据说有好多关于长连接的例子,都是拖住一个客户端连接不放,感觉不太好啊,客户端用settimeout/挺好的
------解决方案--------------------
学习了。。。。。
------解决方案--------------------
好像只能每隔一段时间去读一次数据库
你可以设定每30秒去读一次,读表的时候可以select count(*) from table with (nolock)不要加锁
如果记录数大于0说明有消息,再做进一步的动作。
另外在循环里面设置一个变量,控制是否自动获取,免得死循环,
就是
while (i=1)
{
//do something
//wait 30s


然后在外面控制这个i,如果i设置成0的话,就可以不去读后台了。
------解决方案--------------------
1.Oracle触发器->Oracle(Http/WebServices)->Http/WebSercies(Socket服务器)->Socke客户端(RIA,WinForm)
RIA,WinForm先发起请求到Socket服务器,并保持长连接,端口长占用
2.WebForm AJAX长连接

提供给你思路,其他的,自己去实现
FortuneBase
www.cnblogs.com/mail-ricklee
------解决方案--------------------
server push只是变相地“刷新”...随着RIA技术的成熟必然被淘汰,死定了...
------解决方案--------------------
WEB 很多所谓的及时更新 你去看它的后台,一般都有个定时调用的东西(死循环),所谓的push技术,貌似IBM出了一个专门用于那技术的,一般作用于大型项目,因为是有专门的服务器进行此动作的,如果你觉得很值得去做这件意义不大的事的话,那就去研究下
------解决方案--------------------
server push技术会导致http服务器产生大量长连接,等于把http当tcp来用了,而且server push技术的客户端实现大多都是基于multipart mime来完成的,完全依赖于客户端对multipart mime的支持如何。