用ajax实时刷新 觉得浪费资源
在网上看到有个服务器推送技术
不知道Asp.net能否实现服务器推送技术?来问问大家 有没有用过

解决方案 »

  1.   

    java有个comet可以看看ipush server:http://www.icetechnology.com/products/ipushv2/
      

  2.   

    http://msdn.microsoft.com/zh-cn/library/ms172896.aspx
      

  3.   

    http://topic.csdn.net/u/20081223/15/469ea2c1-8997-44e5-82b1-ddba85996a52.html
      

  4.   

    java是可以的,至于.net,一直关注着~~~~~~
      

  5.   

    Server Push只是一种假象,Java也不例外,这是HTTP协议决定的...除非使用ActiveX或Java Applet这种C/S技术,否则不可能有真正的Server Push...
      

  6.   

    我认为不可行,http是无状态的,还是通过客户端Ajax技术进行访问比较合理。
      

  7.   

    没研究过LZ的问题,LZ具体要做什么呀?
      

  8.   

    fex貌似可以,silverlight不知道可不可以。。
      

  9.   

    各位前辈看看这个是不是所谓的推技术~~
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="PushTest._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div id="time">
        
        </div>
        </form>
    </body>
    </html>
    <script>
    function SetTimer(p){
        document.getElementById("time").innerHTML = p;
    }
    </script>using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Threading;namespace PushTest
    {
        public partial class _Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {        }
            protected override void Render(HtmlTextWriter writer)
            {
                base.Render(writer);            Response.Buffer = true;
                bool isOutput = false;
                Response.Write("");            Response.Flush();
                int lastsecond = 0;
                while (Response.IsClientConnected)
                {
                    Thread.Sleep(300);
                    if (DateTime.Now.Second != lastsecond && !isOutput)
                    {                    lastsecond = DateTime.Now.Second;
                        Response.Write("<script>  SetTimer('" + DateTime.Now.ToString() + "')\n </script> ");
                        Response.Flush();
                        isOutput = true;
                    }
                    else
                    {
                        isOutput = false;
                    }            }
            }
        }
    }
      

  10.   

    恩,我想大家还是好好看看HTTP协议吧.
    看完了,基本上就都了解了。除非你不走HTTP协议,否则是断无可能的。
      

  11.   

    关注中,,,我想看看高手是如何做服务器推进技术,,不过好像jsp才有吧
      

  12.   


    25楼 你说有 哪里有 能找出来吗? 我是把百度 google 翻遍了 都没看到示例的
      

  13.   

    应该不行,你可以从实现原理上来分析,物理逻辑行的通才可以,否则。。
    我原来就是使用AJAX来实现服务器事件监听
      

  14.   

    Http协议只有被动请求,当然像20楼那样的长链接确实可以达到推的目的。不过实质上还是拉模式。通过msxml的com组件结合20楼的方法可以实现拟推模式的应用。msxml2以上版本的DomDocument有个ondataavailable的事件,使用这个事件就可以实现所需要的异步功能。
      

  15.   

    b/s可以定时刷新,为什么非要push?
    有什么web功能非得用服务器推送来实现?
      

  16.   


    比如数据库里面的数据有更新的时候向客户端显示!如用ajax访问是定时访问不停的请求!而如果有推的方式更节省服务器资源!
      

  17.   


     绝对可以。
     
     Dependency Injection 依赖注射 Ioc (试试看)
      

  18.   

    搞清楚原理.
    BS是无状态的.
    既然服务器不知道客户端状态.
    服务器向哪推?有这几句话以后, 你还废脑筋想什么推送技术.
    别说asp.net不可以, JSP同样不可以. 任何一种语言都不可能在BS结构上实现推送这个行为.你可能要说有些控件或者ACTIVEX可以做到. 那一定是连接状态的socket. 不可能是BS结构.
      

  19.   

    几年前研究过  你可以参考一下
    http://topic.csdn.net/t/20050609/17/4071415.html
      

  20.   

    20搂的确是好办法,很奇怪为什么很多书(包括一些好书)中都没有介绍过?
    下一步我想改写我那个定时刷新页面的Ajax留言板了。让它不再定时刷新!而是每次有用户发言时,才向其他聊天者的页面刷新!这个用Render中的Write语句看来是可以做到的,在检测条件中加一个提交控制变量就行了。奇怪,怎么没看见有人做出来呢?另外顺便说一下,我刚刚弄了一本《ASP.NET案例精编》,作者周栋祥,大约3月份可以上市吧。这本书(VB的),对于入门者学习ASP.NET甚好。感兴趣的到时候可以留意一下。再回过头来说Push技术,既然Sun能搞,我相信MS肯定也是有方法的,只是我们某些人还不识庐山真面目而已。
      

  21.   

    这个要在试验中方能知晓,我现在没有见到具体的数据。另外,我的聊天室主要用于内联网,目的是在局域网中的员工之间交流,所以传输中长连接中断的可能性都很小。服务器就是我的Windows XP上的IIS 5.1喽,原始连接数限制为10个,经过下载微软的MetaEdit调整之后,扩展到40个毫无问题。40个连接应该够用的,另外我的每个页面中都安排了防止F5刷新的JavaScript代码,这些加在一起,希望能够实现我的目的。我刚刚看了网上的关于Commet等的一点文章(http://www.cnblogs.com/cathsfz/archive/2008/02/26/1082668.html),感到很受鼓舞,至少验证了20搂的代码应当是精华的东西。如果将来放在互联网上使用,如何定期维护长连接倒是个问题,不过网上已经有人发表解决方案了。一般一个专用服务器供40个人进行连同多媒体在内的聊天,恐怕已经可以了。也不用支持万八的。
    前些天为了能在留言簿的输入文本框中像QQ那样直接贴入剪贴板内的图片而做了个调查,唯有印度的一个小伙子用ActiveX做了个将近1MB的插件,用户使用时却必须降低安全允许等级!也就是说微软明知道可以实现,就是不批准大量使用。看来很多好技术都还要等待时日。
      

  22.   

    20樓雖然可用~但是會造成網頁無法完成load的狀態~~一直load~~load~load~~
      

  23.   

    Ajax+webserver读 APPlication,简单又实用.
      

  24.   

    服务器推技术现在已经在java上有明确定义了,技术就叫彗星。
      

  25.   

    在 Ajax 应用程序中实现实时数据推送
    http://www.ibm.com/developerworks/cn/web/wa-aj-socket/