我们可以先看下简单效果,打开2个页面可以看到推送效果
服务端我们只需要下面一个方法
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;public partial class pagepush : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { } protected override void Render(HtmlTextWriter output) { string msg = ""; while (true)//构建一个循环 { if (this.Context.Application["message"] != null)//通过context构建消息 { msg = this.Context.Application["message"].ToString(); } //以js形式向客户传送消息,这里向客户端推送时间 string str = ""; this.Context.Response.Write(str);//向客户端输出信息 this.Context.Response.Flush();//让服务端所有消息响应客户端 System.Threading.Thread.Sleep(1000); } }}
看下客户端如何获取数据:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>异步页面推送技术
具体可以自己做个一个看看效果demo: