CN101883086A - 一种ASP.NET环境下Comet功能的实现方法 - Google Patents

一种ASP.NET环境下Comet功能的实现方法 Download PDF

Info

Publication number
CN101883086A
CN101883086A CN2010101243712A CN201010124371A CN101883086A CN 101883086 A CN101883086 A CN 101883086A CN 2010101243712 A CN2010101243712 A CN 2010101243712A CN 201010124371 A CN201010124371 A CN 201010124371A CN 101883086 A CN101883086 A CN 101883086A
Authority
CN
China
Prior art keywords
client
server end
function
data
page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010101243712A
Other languages
English (en)
Other versions
CN101883086B (zh
Inventor
田尚杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Group Shandong General Software Co Ltd
Original Assignee
Inspur Group Shandong General Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Group Shandong General Software Co Ltd filed Critical Inspur Group Shandong General Software Co Ltd
Priority to CN 201010124371 priority Critical patent/CN101883086B/zh
Publication of CN101883086A publication Critical patent/CN101883086A/zh
Application granted granted Critical
Publication of CN101883086B publication Critical patent/CN101883086B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种在ASP.NET环境下实现Comet(又称Server Push或ReverseAjax)的方法。使用该方法,可以轻便快捷的在ASP.NET站点或应用程序中实现Comet,当服务器端相关数据发生变化时,会及时更新到客户端,从而使得客户端能够及时的更新用户界面以反映服务器端数据的变化。

Description

一种ASP.NET环境下Comet功能的实现方法
技术领域
本发明提出了一种实现Comet技术的途径,涉及web应用程序的客户端和服务器端之间数据信息的传播技术,特别涉及一种ASP.NET环境下Comet技术实现的方法和系统。
背景技术
Comet,又被称作Server Push或者Reverse Ajax,指的是一种Web应用程序的架构。在这种架构中,客户端程序(通常是浏览器)不需要显式的向服务器端发出请求,服务器端会在其数据发生变化的时候主动的将数据异步的发送给客户端,从而使得客户端能够及时的更新用户界面以反映服务器端数据的变化。
这种架构既不同于传统的Web应用,也不同于新兴的Ajax应用。在传统的Web应用中,通常是客户端主动的发出请求,服务器端生成整个HTML页面交给客户端去处理。在AJAX应用中,同样是客户端主动的发出请求,只是服务器通常返回的是XML或是JSON格式的数据,然后客户端使用这些数据来对页面进行局部更新。Comet架构非常适合事件驱动的Web应用和对交互性和实时性要求很强的应用。这样的应用的例子包括各种在线监控系统、股票交易行情分析、聊天室和Web版在线游戏等。
基于Comet架构的Web应用使用客户端和服务器端之间的HTTP长连接来作为数据传输的通道。每当服务器端的数据因为外部的事件而发生改变时,服务器端就能够及时把相关的数据推送给客户端。通常来说,有两种实现长连接的策略:
HTTP流(HTTP Streaming):
这种情况下,客户端打开一个单一的与服务器端的HTTP持久连接。服务器通过此连接把数据发送过来,客户端增量的处理它们。
HTTP长轮询(HTTP Long Polling):
这种情况下,由客户端向服务器端发出请求并打开一个连接。这个连接只有在收到服务器端的数据之后才会关闭。服务器端发送完数据之后,就立即关闭连接。客户端则马上再打开一个新的连接,等待下一次的数据。
发明内容
本发明的目的是提供一科ASP.NET环境下实现COMET的方法。
本发明的目的是按以下方式实现的,包括内容有:
1)函数管理器:当页面初始化时,该管理器会自动把该页面服务器端修饰符为public的方法映射为客户端同名javascript脚本函数,脚本函数中包含对服务器端对应方法的异步回调。
同时,该函数管理器会自动向客户端页面注册一个定时回调函数,该函数会自动调用服务器端某方法,以获取服务器端的数据更新。当获取到更新时,会根据配置,自动更新页面的某一区域。
该函数管理器可以脱离消息池单独用作AJAX脚本引擎,实现AJAX功能。
2)消息池:消息池中定义了标准接口,可以根据需要进行扩展,进而配合函数管理器完成Comet功能。消息支持复杂数据类型,甚至是语音、视频,也可以包含各种与客户端相关的key ID,用户可以根据需要进行实现。
具体实现步骤如下:
1)服务器端程序在页面初始化时,自动获取ASP.NET页面上服务器端修饰符为public的方法;
2)步骤a)中获取到修饰符为public的方法,则把这些方法转换为客户端javascript函数,并自动加载到客户端;
3)在b)步骤中把服务器端公开方法转换为javascript函数时,每个js函数里面实现了对应的服务器端方法的异步调用;
4)服务器端会维护和支持一个消息池,所有与客户端相关的变化通知和数据都会换存在该内存池中;
5)服务器端自动向客户端注册一个javascript回调函数,该函数每隔一段时间会自动调用服务器端方法检测消息池的的变化通知;
6)步骤e)检测到有变化数据存在,则该部分数据通过异步回调,已返回值的形式返回到客户端,客户端的脚本把这部分数据更新到页面的相关区域。
程序自动把页面上服务器端的公开方法转换为客户端javascript函数时,会自动把相关参数和返回值的数据类型映射为javascript支持的类型,这个过程对使用人员透明。
每个服务器端的public方法映射到客户端时,在客户端生成的javascript函数中都包括对该方法基于XMLHTTP的异步回调。
客户端javascript函数回调服务器端方法时,都包括对服务器端方法参数的传入以及返回值的获取和解析。
客户端和服务器端交换参数时可以使用JSON对象数据。
服务器端维持的消息池可以是复杂对象,这些对象中包含相应的key,用以区分不同的用户、不同的页面、不同的页面区域。
不需要实现COMET,该方法还用作实现AJAX。
本发明的优异效果是:使用该方法,可以轻便快捷的在ASP.NET站点或应用程序中实现Comet,当服务器端相关数据发生变化时,会及时更新到客户端,从而使得客户端能够及时的更新用户界面以反映服务器端数据的变化。
附图说明
图1:页面初始化流程图:
图2:调用过程图:
具体实施方式
参照说明书附图对本发明的作以下详细地说明。
附图1说明:用户向服务器发出页面浏览请求,服务器端函数管理器会自动把相关方法映射到客户端,并返回其他相关数据。
附图2说明:客户端脚本调用相关映射函数,该函数会自动异步调用服务器端方法,服务器端接到异步调用请求后,根据编程策略,对服务器端数据进行处理,然后返回到客户端,客户端调用接收到返回数据后,在脚本中更新页面区域。
实施例
1)在Visual Studio 2005或2008的ASP.NET开发环境中,把函数管理器引入工具栏;
2)在要实现COMET或者AJAX的页面上拖入函数管理器;
3)编写服务器端函数,对需要客户端调用的函数标示为public;
4)如果有复杂应用,实现消息池;
5)在客户端javascript脚本中,按照需要直接调用服务器端方法即可。

Claims (7)

1.一种ASP.NET环境下Comet功能的实现方法,其特征在于,包含如下步骤:
a)服务器端程序在页面初始化时,自动获取ASP.NET页面上服务器端修饰符为public的方法;
b)步骤a)中获取到修饰符为public的方法,则把这些方法转换为客户端javascript函数,并自动加载到客户端;
c)在b)步骤中把服务器端公开方法转换为javascript函数时,每个js函数里面实现了对应的服务器端方法的异步调用;
d)服务器端会维护和支持一个消息池,所有与客户端相关的变化通知和数据都会换存在该内存池中;
e)服务器端自动向客户端注册一个javascript回调函数,该函数每隔一段时间会自动调用服务器端方法检测消息池的的变化通知;
f)步骤e)检测到有变化数据存在,则该部分数据通过异步回调,已返回值的形式返回到客户端,客户端的脚本把这部分数据更新到页面的相关区域。
2.根据权利要求1所述的方法,其特征在于,程序自动把页面上服务器端的公开方法转换为客户端javascript函数时,会自动把相关参数和返回值的数据类型映射为javascript支持的类型,这个过程对使用人员透明。
3.根据权利要求1所述的方法,其特征在于,每个服务器端的public方法映射到客户端时,在客户端生成的javascript函数中都包括对该方法基于XMLHTTP的异步回调。
4.根据权利要求1所述的方法,其特征在于,客户端javascript函数回调服务器端方法时,都包括对服务器端方法参数的传入以及返回值的获取和解析。
5.根据权利要求1所述的方法,其特征在于,客户端和服务器端交换参数时可以使用JSON对象数据。
6.根据权利要求1所述的方法,其特征在于,服务器端维持的消息池可以是复杂对象,这些对象中包含相应的key,用以区分不同的用户、不同的页面、不同的页面区域。
7.根据权利要求1所述的方法,其特征在于,不需要实现COMET,该方法还用作实现AJAX。
CN 201010124371 2010-03-15 2010-03-15 一种ASP.NET环境下Comet功能的实现方法 Active CN101883086B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010124371 CN101883086B (zh) 2010-03-15 2010-03-15 一种ASP.NET环境下Comet功能的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010124371 CN101883086B (zh) 2010-03-15 2010-03-15 一种ASP.NET环境下Comet功能的实现方法

Publications (2)

Publication Number Publication Date
CN101883086A true CN101883086A (zh) 2010-11-10
CN101883086B CN101883086B (zh) 2013-01-02

Family

ID=43054976

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010124371 Active CN101883086B (zh) 2010-03-15 2010-03-15 一种ASP.NET环境下Comet功能的实现方法

Country Status (1)

Country Link
CN (1) CN101883086B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035893A (zh) * 2010-12-23 2011-04-27 中国农业银行股份有限公司 一种服务器主动推送数据的方法和系统
CN102760082A (zh) * 2011-04-29 2012-10-31 腾讯科技(深圳)有限公司 一种任务管理方法和移动终端
CN103077196A (zh) * 2012-12-25 2013-05-01 宁波公众信息产业有限公司 一种从公网web网站到内网数据库的访问方法
CN103281355A (zh) * 2013-05-02 2013-09-04 同济大学 基于模糊决策的服务器推送方法
CN103502940A (zh) * 2011-12-21 2014-01-08 华为技术有限公司 一种分布式系统中处理事务的方法、相关设备及系统
CN103607441A (zh) * 2013-11-12 2014-02-26 浪潮集团有限公司 一种基于web的服务器远程管理系统
CN103809757A (zh) * 2014-02-26 2014-05-21 山东超越数控电子有限公司 一种人机交互系统的实现机制
CN104007955A (zh) * 2013-02-26 2014-08-27 中国石油化工股份有限公司 一种用于钻井资料的即增即读的方法
CN104683325A (zh) * 2014-12-01 2015-06-03 苏州朗米尔照明科技有限公司 一种基于comet连接进行个性化信息推送的方法
CN105516221A (zh) * 2014-09-24 2016-04-20 阿里巴巴集团控股有限公司 信息推送系统及方法
CN103780603B (zh) * 2013-12-31 2016-10-19 电子科技大学 应用内轻量级推送方法
CN106997298A (zh) * 2016-01-22 2017-08-01 阿里巴巴集团控股有限公司 一种应用资源获取方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101179435A (zh) * 2007-11-22 2008-05-14 Ut斯达康通讯有限公司 一种主动推送网管事件的方法及网络管理系统
WO2009073368A1 (en) * 2007-11-29 2009-06-11 Motorola, Inc. Method and apparatus to facilitate asynchronously invoking a browser application in a client platform

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101179435A (zh) * 2007-11-22 2008-05-14 Ut斯达康通讯有限公司 一种主动推送网管事件的方法及网络管理系统
WO2009073368A1 (en) * 2007-11-29 2009-06-11 Motorola, Inc. Method and apparatus to facilitate asynchronously invoking a browser application in a client platform

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陆晓春: "《基于服务器端Push的Web框架设计与实现》", 26 June 2007, article "《基于服务器端Push的Web框架设计与实现》", pages: 1-74 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035893A (zh) * 2010-12-23 2011-04-27 中国农业银行股份有限公司 一种服务器主动推送数据的方法和系统
CN102760082A (zh) * 2011-04-29 2012-10-31 腾讯科技(深圳)有限公司 一种任务管理方法和移动终端
CN102760082B (zh) * 2011-04-29 2016-09-14 腾讯科技(深圳)有限公司 一种任务管理方法和移动终端
CN103502940A (zh) * 2011-12-21 2014-01-08 华为技术有限公司 一种分布式系统中处理事务的方法、相关设备及系统
CN103077196B (zh) * 2012-12-25 2016-04-20 宁波公众信息产业有限公司 一种从公网web网站到内网数据库的访问方法
CN103077196A (zh) * 2012-12-25 2013-05-01 宁波公众信息产业有限公司 一种从公网web网站到内网数据库的访问方法
CN104007955A (zh) * 2013-02-26 2014-08-27 中国石油化工股份有限公司 一种用于钻井资料的即增即读的方法
CN103281355A (zh) * 2013-05-02 2013-09-04 同济大学 基于模糊决策的服务器推送方法
CN103607441A (zh) * 2013-11-12 2014-02-26 浪潮集团有限公司 一种基于web的服务器远程管理系统
CN103780603B (zh) * 2013-12-31 2016-10-19 电子科技大学 应用内轻量级推送方法
CN103809757A (zh) * 2014-02-26 2014-05-21 山东超越数控电子有限公司 一种人机交互系统的实现机制
CN105516221A (zh) * 2014-09-24 2016-04-20 阿里巴巴集团控股有限公司 信息推送系统及方法
CN105516221B (zh) * 2014-09-24 2018-12-14 阿里巴巴集团控股有限公司 信息推送系统及方法
CN104683325A (zh) * 2014-12-01 2015-06-03 苏州朗米尔照明科技有限公司 一种基于comet连接进行个性化信息推送的方法
CN106997298A (zh) * 2016-01-22 2017-08-01 阿里巴巴集团控股有限公司 一种应用资源获取方法及装置
CN106997298B (zh) * 2016-01-22 2021-08-06 菜鸟智能物流控股有限公司 一种应用资源获取方法及装置

Also Published As

Publication number Publication date
CN101883086B (zh) 2013-01-02

Similar Documents

Publication Publication Date Title
CN101883086B (zh) 一种ASP.NET环境下Comet功能的实现方法
US9317392B2 (en) Methods and automated systems for testing, optimization, and analysis that preserve continuity in identities and status of users who access remote information from different contexts
CN107808010A (zh) 一种弹窗页面生成方法、装置、浏览器及存储介质
CN104301436B (zh) 待显示内容推送、订阅、更新方法及其相应的装置
US20190190977A1 (en) System and method of automatic generation and insertion of analytic tracking codes
CN102932352A (zh) 和客户端进行通信的方法以及服务器
US10193993B2 (en) Systems and methods of token piggybacking
CN102890724A (zh) 网页加载方法和装置
CN103873918A (zh) 图片处理方法、装置及终端
CN102904903A (zh) 通信系统和通信方法
US20170192941A1 (en) Computer-Automated Generation of Application Deep Links
CN106897336A (zh) 网页文件发送方法、网页渲染方法及装置、网页渲染系统
CN102915366A (zh) 一种浏览器加载网页的方法和装置
CN110929183A (zh) 一种数据处理方法、装置和机器可读介质
CN107800611A (zh) 一种页面切换的方法及页面切换装置
CN110808868A (zh) 测试数据获取方法、装置、计算机设备及存储介质
US20140245124A1 (en) System and method thereof for browser agnostic extension models
CN101916283B (zh) 由动态网页上获取链接信息的方法及其服务器
AU2016101498A4 (en) Data Interchange System
CN108667915B (zh) 信息推送系统、方法和装置
CN104361130A (zh) 一种在网页中搜索局域网或指定网段内设备的方法
KR20120137629A (ko) 브랜딩을 위한 단축 url 브라우징 제공시스템, 그 제공방법, 및 웹 클라이언트
CN109639559A (zh) 一种微信h5传播监测分析方法及相关设备
US20120131037A1 (en) Asynchronous online searches
CN103733596B (zh) 用于管理对由电子设备提供的资源组的访问的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant