欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【关于.NET中的Server push技术】,下面是详细的分享!
关于.NET中的Server push技术
今天突发奇想,想研究一下服务端内容有变化,如何引起客户端的改变。
一般来说方法有2种,一种就是客户端用JS异步定时轮询服务器端,这种是大部分人采用的方法,但是我在想到底可以不可以实现服务器端有改变时才会主动推送到客户端呢?按理来说这种方式对于B/S是不可能实现的,因为B/S是无连接的,这种request/response的方式无法保持状态。搜了一下,看到博客园有位朋友写了篇文章是关于Server Push的,文章点这里看,我自己把它的代码复制过来看了下效果,完整代码如下:
前台:
|
以下为引用的内容: 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ServerPushDemo.aspx.cs" Inherits="WebDemo.ServerPush.ServerPushDemo" %> |
后台代码:
|
以下为引用的内容: using System; |
这种方式的实现原理其实就是在OnRender事件里,用循环挂起连接,因为服务器端没有response完毕,所以一直和客户端保持连接,虽然这种方式能实现服务器端向客户端的推送,但它的代价太大,因为web的优势就是无连接。这样每个客户端都要占用服务器端的一个IIS连接,如果用户超过百个,就会非常恐怖的。所以这种方式我觉得不可取,相比来说,还是用AJAX的方式定时轮询更好。
真正意义上的Server Push好像我找了一些文章在Cgi里可以实现,点这里看。但在.net里的实现我就不得而知了,知道的高人请指点下,呵呵。
我还搜到一个关于.net推技术的就是Comet框架,可以实现长连接的,具体文章请点这里。改天我会把相关Demo发出来.
以上所分享的是关于关于.NET中的Server push技术,下面是编辑为你推荐的有价值的用户互动:
相关问题:求js实现Server-Push的解决方案
答:客户端JS想push当然是用AJAX啦~直接上传数据就可以了~推荐用JQ的ajax百度一下有的是! >>详细
相关问题:有人用java实现过server push吗
答:ServletOutputStream out = response.getOutputStream(); MultipartResponse multi = new MultipartResponse(response); multi.startResponse("text/html"); out.println("输出的内容");//这里输出的内容是网页的文件头 multi.endResponse(); wh... >>详细
相关问题:asp.net 服务器推技术(push) 求高手解答啊!这是...
答:protected override void Render(HtmlTextWriter output) 楼主你在这个方法里面做了一个死循环,网页就吊死了啊,无法返回内容了 HTTP服务器推技术不是这样用的,其实比较好的做法是: 客户端不断请求服务器数据,服务器返回值,以此来模拟推技... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
