`
15210494746
  • 浏览: 21841 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

服务器异步推送数据的新型技术

阅读更多
用来解决类似于事件驱动,即时通信等问题的框架值得学习

Comet 是一种新的 Web 应用架构。基于这种架构开发的应用中,服务器端会主动以异步的方式向客户端程序推送数据,而不需要客户端显式的发出请求。Comet 架构非常适合事件驱动的 Web 应用,以及对交互性和实时性要求很强的应用,如股票交易行情分析、聊天室和 Web 版在线游戏等。   彗星   一种绕太阳公转的中等大小的冰质物体;比太阳行星小 比月球大   服务器推送技术(Server Push)是最近Web技术中最热门的一个流行术语,它的别名叫Comet(彗星)。它是继AJAX之后又一个倍受追捧的Web技术。服务器推送技术最近的流行与AJAX有着密切的关系。   随着Web技术的流行,越来越多的应用从原有的C/S模式转变为B/S模式,享受着Web技术所带来的各种优势(例如跨平台、免客户端维护、跨越防火墙、扩展性好等)。但是基于浏览器的应用,也有它不足的地方。主要在于界面的友好性和交互性。由于浏览器中的页面每次需要全部刷新才能从服务器端获得最新的数据或向服务器传送数据,这样产生的延迟所带来的视觉感受非常糟糕。因此很多的桌面应用为了获得更友好的界面放弃了Web技术,或者采用浏览器的插件技术(ActiveX、Applet、Flash等)。但是浏览器插件技术本身又有许多问题,例如跨平台问题和插件版本兼容性问题。   随着AJAX技术的兴起,让广大开发人员又一次看到了使用浏览器来替代桌面应用的机会,并且这次机会非常大。AJAX将整个页面的刷新变成页面局部的刷新,并且数据的传送是以异步方式进行,这使得网络延迟带来的视觉差异将会消失。AJAX还利用DHTML和丰富的JavasSript语言来模拟桌面系统的各种事件和响应过程,以及平滑滚动和拖拽的效果。还不止这些,更有一些IT巨头(Google、Sun、Oracle等)提供了非常丰富的AJAX开发工具,使得开发和调试AJAX应用变得简单高效,并且开发的AJAX应用还可以跨越各种浏览器和操作系统。在这种情况下基于AJAX的Web应用迅速涌起,吞噬着原有桌面系统的份额。聊天工具、邮件阅读器、博客编辑器,甚至是Office办公软件和文字处理软件在浏览器中都有着美丽的外观和几乎可以与桌面系统媲美的交互界面。Google更是提出“有了浏览器和Google,就不需要微软”的口号和策略。在AJAX的世界中,除了传统的CAD设计软件和大型游戏软件等因为对系统硬件的苛刻需求,还离不开桌面系统以外,似乎其他所有的应用都可以变成Web应用了。   但是,在浏览器中的AJAX应用中存在一个致命的缺陷无法满足传统桌面系统的需求。那就是“服务器发起的消息传递(Server-Initiated Message Delivery)”。在很多的应用当中,服务器软件需要向客户端主动发送消息或信息。因为服务器掌握着系统的主要资源,能够最先获得系统的状态变化和事件的发生。当这些变化发生的时候,服务器需要主动地向客户端实时地发送消息。例如股票的变化。在传统的桌面系统中,这种需求没有任何问题,因为客户端和服务器之间通常存在着持久的连接,这个连接可以双向传递各种数据。而基于HTTP协议的Web应用却不行。上节中也提到过,在Web世界中,服务器永远是被动地发送数据,前提是客户端必须先发送请求。浏览器其实并不知道服务器的信息什么时候会有改变,为了模拟实时的交流,或者不想错过某些信息,只能通过轮询(Polling)技术不断刷新页面来获得最新的数据(见图18-5)。这种方式不但浪费服务器的资源,最重要的是每次建立(或关闭)新的HTTP连接都有一定的延迟,这种延迟使得频繁信息传递的应用无法忍受。于是就产生了“服务器推送技术”。
分享到:
评论

相关推荐

    Comet:基于_HTTP_长连接的“服务器推”技术

    这种方式利用了AJAX(异步JavaScript和XML)的特性,客户端发送一个HTTP请求到服务器,然后服务器保持连接打开状态,直到有新的数据可推送给客户端。一旦有数据,服务器就发送响应并关闭连接,客户端接收到数据后...

    基于HTTP的实时信息传输方法

    这种方法充分利用了AJAX异步传输的灵活性和服务器端Push的实时性,能够在不增加额外服务器负载的情况下实现高效的数据推送。具体来说: - **初始化阶段**:客户端通过AJAX向服务器发起请求建立HTTP连接。 - **数据...

    comet实例 .rar

    而Comet技术则利用HTTP的持久连接特性,使客户端和服务器之间的连接在完成一次请求后不立即关闭,而是保持开放,等待服务器有新的数据时主动推送到客户端。这种方式可以显著减少由于频繁建立和关闭连接所带来的开销...

    让移动数据更畅更稳的WAP2.0和WJMS技术

    - **新型网络和载体技术**:利用GPRS、HSCSD等高速无线载体,为3G网络的高带宽服务提供支持。 - **TCP/IP 移动简本**:优化无线链接上的TCP/IP通信,确保与现有互联网的互操作性。 - **移动友好技术**:包括简化...

    怎样打造一个分布式数据库1

    这意味着计算过程可能需要被推送到数据所在的节点进行,而不是将所有数据拉回中心节点计算,以提高效率。 5. 分布式一致性协议:Raft是用于实现分布式一致性的一种算法,TiKV使用Raft来保证数据在节点间的复制和...

    电信设备-多对多文字消息通信方法.zip

    8. **消息推送技术**:在多对多通信中,服务器需要及时将新消息推送给相关用户。这通常通过推送服务实现,如Apple Push Notifications (APNs) 或 Firebase Cloud Messaging (FCM),它们可以在用户不主动请求的情况下...

    基于PHP+MySQL的疫情防控信息填报收集系统设计与实现(毕设&课设论文参考).pdf

    - **用户填报模块**:用户可通过微信APP或企业微信APP接收疫情防控填写推送,点击通知后自动跳转至填写页面。系统会自动填充可以通过其他方式获取的信息,如学工号、姓名、联系方式等基本信息,以及当前位置信息等。...

    基于Android的移动办公系统开题报告.docx

    通过异步任务处理和推送通知技术,实现后台数据的实时同步和更新。 六、预期成果 最终成果将是一个功能齐全、操作便捷的Android移动办公应用,为企业提供高效、灵活的办公解决方案,同时满足员工的个性化需求,促进...

    浅析SQL Server2005在实际生活中的应用.pdf

    通告服务则支持创建丰富的通知类应用程序,使信息可以实时推送给不同的设备和平台。 此外,SQL Server 2005在Web服务方面提供了创新,允许开发者在数据库层创建Web服务,从而为网络服务应用提供新型的数据存取方式...

    基于无避让智能机械式停车设备的智慧停车系统研究.docx

    - 展示子系统将数据信息推送至城市管理指挥中心,便于实时监控。 3. **库管理云平台架构设计** - 采用SSM(Spring+SpringMVC+MyBatis)框架,Spring负责对象管理,SpringMVC处理请求,MyBatis处理数据库操作。 -...

    iOS开发进阶

    iOS提供了多种后台模式,如后台音频、位置更新和远程推送通知。了解如何配置和使用这些功能可以提升用户体验。 九、动画与渲染 iOS提供了强大的动画和渲染能力,包括Core Animation和Metal。进阶内容可能涵盖自定义...

    学习半年ios收集的DEMO,分享下

    9. **推送通知**:DEMO可能展示了如何集成Apple Push Notification Service(APNs)为用户提供实时消息。 10. **地图服务**:使用Core Location和MapKit框架实现定位和地图功能,DEMO可能包含获取用户位置、显示...

    基于Vue3+Vite+TypeScript打造的聊天室项目源码.zip

    WebSocket是一种在单个TCP连接上进行全双工通信的协议,允许服务器主动向客户端推送数据,非常适合实时聊天应用。 6. **Socket.io**(可能包含): 在实际项目中,开发者可能会选择Socket.io库来简化WebSocket的...

    web开发集web前端开发

    12. PWA(Progressive Web Apps):PWA是一种新型的Web应用,它们可以离线工作、有推送通知功能,并能像原生应用一样安装在用户的设备上。 13. 前端构建工具:Webpack和Gulp等工具可以自动化构建过程,包括代码编译...

    webapp

    8. **Service Worker**:允许在后台运行脚本,实现离线缓存和推送通知等功能,提升了Webapp的离线体验。 9. **Progressive Web App (PWA)**:一种新型Webapp模式,具备渐进增强、离线访问、即时加载等特点,力求...

    前端备忘标签

    10. PWA (Progressive Web App):PWA是介于传统Web应用和原生应用之间的一种新型应用形态,通过Service Worker和Web App Manifest等技术,实现离线访问、添加到主屏幕、推送通知等功能。 以上是“前端备忘标签”...

    pwa-budget-app:渐进式Web应用程序实践-具有离线功能的预算应用程序

    7. **推送通知**:PWA可以向用户发送推送通知,提高用户参与度。 8. **更新实时**:一旦有新的内容或功能,PWA会自动更新,无需用户手动操作。 【PWA-Budget-App的主要技术实现】 在"PWA-Budget-App"项目中,主要...

    基于SpringBoot的自助洗车店运营系统设计.docx

    此外,还可以根据用户历史消费记录推送个性化促销信息,增强客户黏性。 #### 七、测试与部署 为了确保系统的稳定性和可靠性,在正式上线前需要进行全面的测试。主要包括单元测试、集成测试、性能测试等多个阶段。...

    pwa-server

    PWA的主要目标是提供离线支持、即时加载、推送通知以及可安装到用户设备上的能力,从而提升用户体验。"pwa-server"就是这样一个专门为PWA服务的服务器端解决方案。 1. **Service Worker技术** Service Worker是PWA...

Global site tag (gtag.js) - Google Analytics