Asp.net怎样实现推数据?
一个客户请求后一直保持连接,然后服务器不定的向浏览器发送数据。
------解决方案--------------------sf
------解决方案--------------------不可能一直保持连接的
------解决方案--------------------用activx或者falsh
------解决方案--------------------据说google的webim是这样实现的 你研究下,还有一个java的开源webim服务器也是这么实现的,你搜下webim会有答案的!!!!
------解决方案--------------------前写天也遇到了这个问题,搜索了一些资料,但项目急没时间让我来研究 最后还是用ajax实现的
------解决方案--------------------客户端AJAX每隔端时间去请求服务器。
------解决方案--------------------服务器不定主动先客户端发数据
------解决方案--------------------HTTP是无状态的,客户不可能一直保持链接,只要1请求完就完全和服务器端断开,没有什么关系了。
------解决方案--------------------使用一个长连接推送技术,
具体就是使用了一个htmlfile的window系统保留控件,开启了一个长连接,然后不停的相浏览器推送数据
var dom = new ActiveXObject( "htmlfile);
使用这个东西就可以保持一个长链接了,这个东西本身就相当与一个浏览器控件
------解决方案--------------------mark.
------解决方案--------------------给你推荐一根书:《Ajax Patterns and Best Practices》。里面有一章是专门讲持久通信的。
------解决方案--------------------用flash,里边有socket
------解决方案--------------------呵呵。刚好前两天也看了这个。做了个例子,直接贴代码吧。
comet.aspx.cs
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.Text;
using System.Threading;
public partial class comet : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
try
{
if (Session[ "comet "] == null)
{
StringBuilder sb = new StringBuilder();
sb.Append( " ");
sb.Append( " ");
sb.Append( " ");
sb.Append( " ");
sb.Append( " ");
sb.Append( " ");
sb.Append( " ");
sb.Append( " ");
sb.Append( " ");
sb.Append( " ");
sb.Append( " ");
sb.Append( " ");
sb.Append( " ");