Java WebSocket编程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

定价:39.00元[美]DannyCoward 著刘建 夏先波  译编程开发、部署和保护动态Web应用JavaWebSocketProgramming 充分利用最先进的通信技术构建动态企业级Web应用。《JavaWebSocket编程 开发、部署和保护动态Web应用》一书由JavaWebSocket编程权威专家撰写,提供了实际的开发策略和详尽的示例应用。本书诠释了如何设计客户端/服务器应用、与全双工消息通信协作、建立连接、创建端点、处理路径映射以及保护数据。你也将学到如何加密Web传输并且使用JavaWebSocket增强既有应用。主要内容● 使用JavaWebSocketAPI开发Web应用● 创建和发布注解式端点和编程式端点● 管理WebSocket端点的生命周期事件● 维护端点生命周期中可靠的连接● 管理同步和异步消息通信● 为复杂消息通信定义编码和解码策略● 配置消息通信超时、大小限制和异常● 消息路径映射及将入站URI路由到Web容器● 保护数据、认证用户以及加密连接JavaWebSocket编程 开发、部署和保护动态Web应用精通JavaWebSocket应用开发作者简介  DannyCoward是Oracle的首席架构师和Web架构师。他是JavaEE、JavaSE/JavaFX中WebSocketJavaAPI的规范领导者。他在Oracle主导WebSocket工作,他是JavaWebSocket编程方面的权威专家。 JavaWebSocket编程开发、部署和保护动态Web应用[美]DannyCoward著刘建夏先波译北京DannyCowardJavaWebSocketProgrammingEISBN:978-0-07-182719-5Copyright©2014byMcGraw-HillEducation.AllRightsreserved.Nopartofthispublicationmaybereproducedortransmittedinanyformorbyanymeans,electronicormechanical,includingwithoutlimitationphotocopying,recording,taping,oranydatabase,informationorretrievalsystem,withoutthepriorwrittenpermissionofthepublisher.ThisauthorizedChinesetranslationeditionisjointlypublishedbyMcGraw-HillEducationandTsinghuaUniversityPressLimited.ThiseditionisauthorizedforsaleinthePeople'sRepublicofChinaonly,excludingHongKong,MacaoSARandTaiwan.Copyright©2015byMcGraw-HillEducationandTsinghuaUniversityPressLimited.版权所有。未经出版人事先书面许可,对本出版物的任何部分不得以任何方式或途径复制或传播,包括但不限于复印、录制、录音,或通过任何数据库、信息或可检索的系统。本授权中文简体字翻译版由麦格劳-希尔(亚洲)教育出版公司和清华大学出版社有限公司合作出版。此版本经授权仅限在中华人民共和国境内(不包括中国香港、澳门特别行政区和中国台湾地区)销售发行。版权©2015由麦格劳-希尔(亚洲)教育出版公司与清华大学出版社有限公司所有。北京市版权局著作权合同登记号图字:01-2013-8902本书封面贴有McGraw-HillEducation公司防伪标签,无标签者不得销售。版权所有,侵权必究。侵权举报电话:010-6278298913701121933图书在版编目(CIP)数据JavaWebSocket编程开发、部署和保护动态Web应用/(美)科沃德(Coward,D.)著;刘建,夏先波译.—北京:清华大学出版社,2015书名原文:JavaWebSocketProgrammingISBN978-7-302-40807-9Ⅰ.①J…Ⅱ.①科…②刘…③夏…Ⅲ.①JAVA语言—程序设计Ⅳ.①TP312中国版本图书馆CIP数据核字(2015)第162976号责任编辑:王军于平装帧设计:孔祥峰责任校对:邱晓玉责任印制:刘海龙出版发行:清华大学出版社网址:,地址:北京清华大学学研大厦A座邮编:100084社总机:010-62770175邮购:010-62786544投稿与读者服务:010-62776969,c-service@tup.tsinghua.edu.cn质量反馈:010-62772015,zhiliang@tup.tsinghua.edu.cn印装者:清华大学印刷厂经销:全国新华书店开本:148mm×210mm印张:8.25字数:200千字版次:2015年8月第1版印次:2015年8月第1次印刷印数:1~3500定价:39.00元———————————————————————————————————————————产品编号:057242-01作者简介DannyCoward是Oracle的首席架构师和Web架构师。他是JavaEE、JavaSE/JavaFX中WebSocketJavaAPI的规范领导者。Coward在Oracle主导WebSocket工作,他是JavaWebSocket编程方面的权威专家。Coward在Java软件的所有方面——从JavaME到JavaEE再到JavaFX技术的建立——都具有丰富的专业经验。技术编辑简介SantiagoPericas-Geertsen博士是Oracle公司SunGlassfish机构的主要技术人员,也是Avatar项目的架构师和技术主管。Santiago是JSR339、JAX-RS2.0的规范领导者。在SunMicrosystems公司就职时,Santiago是GlassfishMobilityPlatform的技术主管,是FastWebServices项目的开发者和领导者,也是WorldWideWebConsortium(W3C)计划中的参与者和编辑。他持有两项美国专利:7647415和7716577。Santiago的博客在Java.net上,推持号是@spericas,并且他还出席了多场面向学术和产业的会议。致谢非常感谢Santiago,他在本书写作期间给予了深思熟虑的评论;还要感谢McGraw-HillEducation的BrandiShailer和AmandaRussell,他们促使我保证了写作的进度。前言对于Web开发人员迅速发展的工具箱而言,WebSocket协议是一种新的网络协议。它除了作为HTML5的核心技术外,还被从桌面到平板电脑和智能手机的所有主流浏览器迅速采用,不过为什么Web开发人员还要关心另一种网络技术?长轮询在2000年之前,全世界的多数主流公司都使用Web。在发展中国家,个人电脑的革命使得大部分家庭都至少通过一个通道接入互联网。企业迅速地在互联网上建立其Web站点,作为一种展示产品和服务的手段,并且作为交付这些产品和服务的一个日益JavaWebSocket编程VIII增长的渠道。Web的基本技术(例如HTTP、HTML和JavaScript)推动了人们如何与其他人、其学校和其工作地点交互,如何规划假期,甚至如何购买生活用品的革命。Web网站从静态和无趣的目录式风格不断发展,开发人员找到了新方法使得Web网站更加具有交互性。他们指望在合适的时候通过为浏览者注入有趣的信息并在必要时对页面中的信息进行更新来为Web网站添加活力。然而开发人员发现,基本的HTTP及其标记式技术存在着限制。开发人员需要更新股票报价、最新出价、登录到同一网站的当前好友列表、新的处理价以及游戏结果。同时他们也需要在不依赖用户的持续交互的情况下完成这些事情。他们需要从Web服务器端发起数据更新,保持Web网站更新、更迷人、更有趣。他们需要Web网站访问者转变为其渠道的一个观察者,并且他们需要访问者为了获取推送给他们的信息做尽可能少的事情。在之后的几年中,开发人员通过各种非正规手段来完成更新一个网站最新的各种类型的信息到所有当前访问者的任务。最明显的手段是通过浏览器向服务器轮询更新。开发人员将一小段JavaScript嵌入相关的Web页面中,强迫浏览器以预定的间隔周期刷新整个页面。无论获取的数据是否需要刷新,此方法都将刷新所有的数据。即使除去获取非必需数据之外,此方法的网络延迟也是比较明显的,所以其用户体验比较糟糕。稍微复杂一些的处理方式是使用HTTPKeepAlive机制。在这种机制中,Web页面中的JavaScript代码将保持打开一个长生命周期的HTTP连接,如同一个持续不断的软件下载,它将定期地使用新信息进行更新。关于浏览器和服务器应保持连接打开多久方面的巨大差异导致了大量问题。一般情况下,客户端的浏览器将需要频繁地重新打开连接,而无论其是否从服务器获取数据。前言IX随着开发人员接触这些技术,开发框架(例如Comet和AJAX)逐步开始支持并包含这些基本技术。在某种程度上,它们可以隐藏这些基本技术的一些不足。然而,有两个基础问题即使是最好的实现也不能克服。首先,HTTP是一个发送简单信息的昂贵的网络协议。仅仅请求简单的股票报价更新,连接上下文在每次请求中都会被重新调用:例如限定客户端和服务器平台的所有头信息、认证属性、负载描述等。其次,更糟糕的是,无论服务器是否有新的信息传送,都需要建立昂贵的连接。WebSocket的引入2009年,WebSocket的引入工作始于一项允许客户端与服务器建立一个轻量级的连接,并允许双向通信和一个轻量级的内容模型的技术。服务器能够仅在必要时将数据推送到已连接的客户端。一旦连接建立后,在每次发送消息时无须重新创建连接上下文,客户端和服务器都将有办法发送简单信息。不必要的更新的日子即将结束。为了理解轮询方式如何浪费网络资源,考虑一个拍卖网站。物品可以发布在网站上,在定义的时间段内,用户可以对物品进行投标,在投标时间结束后,物品被卖给出价最高的用户。在拍卖的整个过程中,任意访问投标页面的用户都能够看到当前的出价并使用此信息来决定更高的出价。若网站提供一个极其令人满意的物品来拍卖(一个稍微使用过的iPod,毕竟它是2003年的产品),同时此物品的拍卖时间仅仅只有一个小时。假设当这个iPod有新的出价时,网站需要仅仅传送一个简短消息,包含新的价格以及可能的一些附加信息(例如,竞标者的线上名称)。我们估计这些信息总是符合64个字节。若考虑到所有已登录的用户,为了获取新的信息,一些Cookie信息需要在HTTP请求中传送。连同JavaWebSocket编程X内容类型头、可能两三个特定于应用的头、内容长度、浏览器ID等一起,我们估计头信息大约为512字节。现在假设平均有100个用户登录到此网站,在拍卖过程中平均每30秒有一个新的出价。假设出价的频率并不是平均分布的;在某一时刻,出价也许相隔几秒钟(接近于拍卖时间的结束),而在平时(拍卖时间开始)出价可能相隔几分钟。竞标者将希望最近价格信息一直可用,所以他将谨慎地每两秒钟刷新一次价格;否则,因为在竞标者获取更新前另一个出价已完成,当出价不被通过时,竞标者会变得失意。下面将为了获取更新发送的所有数据进行合计:平均每分钟30次更新,总计60分钟=1800次更新每次更新带来大约512字节的头信息发送和接收的头信息总计为:1800×512字节=921600字节=900KB现在,若每次更新包含64字节。同时在此拍卖中,假设有120次出价。因此所有更新信息为:120×64字节=7.5KB。

1 / 71
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功