刚才看到一个需求,就是那个应届面试的那个
需求是:当一个新用户注册成功后,在已经登陆了的管理员的页面上弹出一个提示。一般的思路貌似都是:在客户端一个无限循环去读取后台数据库的数据,发现有数据标识的,那么在客户端进行处理但是这样,会在客户端造成一个死循环。搜索了一下,发现有一个server push技术,好像有些年头了。可是相关的资料没找到。找到两个例子,也是在后台写一个死循环保持服务器长链接。但是这样会对服务器造成负担。而且有好多时候的负担是没有意义的。那么这个server push除了这样的死循环方式还有没有别的方法?vs的水晶报表推模式又是如何实现的呢。

解决方案 »

  1.   

    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
      

  2.   

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

  3.   

    多年前我一个同时说的才对,它是你所说的所谓server push的狂热粉丝(但是在我们的系统中也没有敢那样搞),但是他也只是很客观地把那个叫做hang。什么是hang?就是拖延、悬挂、消耗、上绞刑架的意思。
      

  4.   

     b/s 是没法做到真正意义上的push, 因为iis 给客户端数据后就关闭了客户端的连接,, 这时候服务器是不知道给谁传数据的.
      

  5.   

    据说有好多关于长连接的例子,都是拖住一个客户端连接不放,感觉不太好啊,客户端用settimeout/挺好的
      

  6.   

    好像只能每隔一段时间去读一次数据库
    你可以设定每30秒去读一次,读表的时候可以select count(*) from table with (nolock)不要加锁
    如果记录数大于0说明有消息,再做进一步的动作。
    另外在循环里面设置一个变量,控制是否自动获取,免得死循环,
    就是
    while (i=1)
    {
       //do something
       //wait 30s
    } 然后在外面控制这个i,如果i设置成0的话,就可以不去读后台了。
      

  7.   

    1.Oracle触发器->Oracle(Http/WebServices)->Http/WebSercies(Socket服务器)->Socke客户端(RIA,WinForm)
        RIA,WinForm先发起请求到Socket服务器,并保持长连接,端口长占用
    2.WebForm AJAX长连接提供给你思路,其他的,自己去实现
    FortuneBase
    www.cnblogs.com/mail-ricklee
      

  8.   

    server push只是变相地“刷新”...随着RIA技术的成熟必然被淘汰,死定了...
      

  9.   


    找了下,RIA介绍好像并不多啊
      

  10.   

    RIA就是微软银光吧,在现在来说浏览器需要安装相应的支持。而且好像要需要硬件高一点。在现在来说应该还不是很流行。处于过度阶段吧。
      

  11.   

      WEB 很多所谓的及时更新 你去看它的后台,一般都有个定时调用的东西(死循环),所谓的push技术,貌似IBM出了一个专门用于那技术的,一般作用于大型项目,因为是有专门的服务器进行此动作的,如果你觉得很值得去做这件意义不大的事的话,那就去研究下
      

  12.   

    RIA只是个概念...十年前就有了,silverlight只是一种,flash是更早的一种...flash不是很流行?server push这种偷换概念的东西才叫过度...
      

  13.   

    server push技术会导致http服务器产生大量长连接,等于把http当tcp来用了,而且server push技术的客户端实现大多都是基于multipart mime来完成的,完全依赖于客户端对multipart mime的支持如何。