HTML5 WebSocket权威指南

综合评级:
★★★★★

定价:
¥49.00

作者:
Vanessa Wang,Frank Salim,Peter Moskovits 著

出版社:
机械工业出版社

出版日期:
2014年3月

页数:
210

ISBN:
9787111456414

书籍介绍

本书是HTML5 WebSocket领域最权威的著作之一,它系统、全面地讲解了HTML5 WebSocket的各个方面,是Web开发人员和架构师学习WebSocket的最佳选择。书中讨论了基于WebSocket的架构师如何减少不必要的网络开销和延迟层,如何通过WebSocket对广泛使用的协议(如XMPP和STOMP)进行分层,如何保护WebSocket连接和在企业部署基于 WebSocket的应用程序。主要内容包括: WebSocket API和协议、WebSocket协议通信的例子、WebSocket的安全性和企业部署、内置即时通信和聊天应用程序的WebSocket与XMPP、通过WebSocket的STOMP实现发布/订阅消息传递协议,以及用远程帧缓冲协议实现VNC。

作者简介

Vanessa Wang HTML 5领域的布道者和实践者,热衷于HTML5和WebSocket的研究,是旧金山HTML 5用户组的联合组织者,负责组织HTML5和相关技术的社区活动。Vanessa目前是Kaazing公司的技术出版经理,15年来一直坚持撰写技术文章。Kaazing是一家软件公司,旨在使用新的WebSocket标准改进企业和客户通过Web通信的方式。写作之余,她喜欢打跆拳道、骑自行车和拉大提琴。

  Frank Salim Google公司资深软件工程师,拥有Pomona学院的计算机科学学位。曾经是Kaazing公司最早的工程师之一,协助建立了WebSocket网关和客户端策略。2010年,Frank与人合著了《Pro HTML5 Programming》(Apress)一书。编程之余,他喜欢阅读、绘画和单排轮滑。

  Peter Moskovits Kaazing公司实时解决方案负责人。Peter与架构师和开发人员社区紧密协作,构建和部署最好的Web解决方案。在加入Kaazing之前,Peter担任过多种产品的管理工作,并曾经负责Oracle的门户产品策略。Peter经常在会议和业界活动上发表演讲,包括GoTo、YOW!、JavaOne、Oracle OpenWorld、HTML5DeConf、DevCon5和各种用户组会议。他还是《Oracle WebCenter 11g Handbook》的合著者。

目录

译者序

作者简介

技术审校者简介

致谢

第1章 HTML5 WebSocket简介

1.1 HTML5是什么

1.2 HTML5连接性

1.3 旧的HTTP架构概览

1.3.1 HTTP 101(即HTTP1.0和HTTP1.1)

1.3.2 绕道而行:HTTP轮询、长轮询和流化

1.4 WebSocket入门

1.5 为什么需要WebSocket

1.5.1 WebSocket与性能相关

1.5.2 WebSocket与简洁性相关

1.5.3 WebSocket与标准相关

1.5.4 WebSocket与HTML5相关

1.5.5 你需要WebSocket

1.6 WebSocket和RFC 6455

1.7 WebSocket的世界

1.8 WebSocket的选择

1.8.1 非常活跃的WebSocket社区

1.8.2 WebSocket应用程序

1.9 相关技术

1.9.1 服务器发送事件

1.9.2 SPDY

1.9.3 Web实时通信

1.10 小结

第2章 WebSocket API

2.1 WebSocket API概览

2.2 WebSocket API入门

2.2.1 WebSocket 构造函数

2.2.2 WebSocket事件

2.2.3 WebSocket方法

2.2.4 WebSocket对象特性

2.3 全部组合起来

2.4 检查WebSocket支持

2.5 在WebSocket中使用HTML5媒体

2.6 小结

第3章 WebSocket协议

3.1 WebSocket协议之前

3.1.1 互联网简史

3.1.2 Web和HTTP

3.2 WebSocket协议简介

3.2.1 WebSocket:Web应用程序的互联网能力

3.2.2 检查WebSocket流量

3.3 WebSocket协议

3.3.1 WebSocket初始握手

3.3.2 计算响应键值

3.3.3 消息格式

3.3.4 WebSocket关闭握手

3.3.5 对其他协议的支持

3.3.6 扩展

3.4 用Node.js编写javaScript WebSocket服务器

3.4.1 构建简单的WebSocket服务器

3.4.2 测试简单的WebSocket服务器

3.4.3 构建远程Javascript控制台

3.4.4 扩展建议

3.5 小结

第4章 用XMPP构建WebSocket上的即时消息和聊天

4.1 分层协议

4.2 XMPP:XML的流化

4.2.1 标准化

4.2.2 选择连接性策略

4.2.3 联盟

4.3 通过WebSocket构建聊天和即时消息应用程序

4.3.1 使用能够处理WebSocket的XMPP服务器

4.3.2 建立测试用户

4.3.3 客户端程序库:Strophe.js

4.3.4 连接并开始工作

4.3.5 在线状态

4.3.6 交换聊天消息

4.3.7 ping和pong

4.3.8 完整的聊天应用程序

4.4 建议的扩展

4.4.1 构建用户界面

4.4.2 使用XMPP扩展

4.4.3 连接到Google Talk

4.5 小结

第5章 用STOMP通过WebSocket传递消息

5.1 发布订阅模式概览

5.2 STOMP简介

5.3 Web消息传递入门

5.3.1 安装消息代理

5.3.2 在实践中了解STOMP概念

5.4 构建STOMPWS应用程序

5.4.1 游戏流程

5.4.2 创建游戏

5.4.3 监控Apache ActiveMQ

5.5 建议的扩展

5.6 Web消息传递的未来

5.7 小结

第6章 用远程帧缓冲协议实现VNC

6.1 VNC概述

6.1.1 远程帧缓冲协议概述

6.1.2 面向二进制和面向文本的协议

6.1.3 选择使用RFB over WebSocket

6.2 构建WebSocket上的VNC客户端

6.2.1 建立代理服务器

6.2.2 RFB客户端

6.2.3 使用HTML5的元素绘制帧缓冲

6.2.4 处理客户端中的输入

6.2.5 全部组合起来

6.3 改进应用程序

6.4 小结

第7章 WebSocket安全性

7.1 WebSocket安全性概述

7.2 WebSocket安全特性

7.2.1 origin首标

7.2.2 具有“Sec-”前缀的首标

7.2.3 WebSocket安全握手:接受键值

7.2.4 HTTP代理和屏蔽

7.3 用TLS加强WebSocket安全性

7.4 验证

7.5 应用级安全性

7.5.1 应用程序验证

7.5.2 应用程序授权

7.6 小结

第8章 部署的考虑

8.1 WebSocket应用程序部署概述

8.2 WebSocket模拟和备用手段

8.2.1 插件

8.2.2 填充

8.2.3 不同的抽象层

8.3 代理和其他网络中介

8.3.1 反向代理和负载平衡

8.3.2 用传输层安全(TLS或SSL)穿越代理和防火墙

8.3.3 部署TLS

8.4 WebSocket ping和pong

8.5 WebSocket缓冲和流量控制

8.6 监控

8.7 容量规划

8.8 套接字限制

8.9 WebSocket应用程序部署检查列表

8.10 小结

附录A 检查WebSocket流量

附录B WebSocket资源

前言

译 者 序

万维网极大地改变了人类获取信息的方式。当今世界,不管是办公室里埋头工作的人们,还是路上行色匆匆的芸芸众生,都无时无刻不在通过面前的电脑、平板电脑甚至手机乐此不疲地获取信息、处理业务,而仅仅在20年之前,人们还从未想过有这番景象。

需求决定市场,人们在Web技术上投入了巨大的精力,从最初各种动态网页的渲染技术、令人头痛的跨浏览器兼容问题,到更具有类似桌面应用程序灵敏性的AJAX等,不一而足。在经历了大量艰辛的尝试之后,标准也在不断地发展,所有开发者和设计者都意识到,只有标准支持的技术才具备强大的生命力,也才能够真正得到广泛应用。

万维网的核心—HTML也在不断地变化,从当初仅用于简单文档共享的超文本标记语言,发展到当今令人耳目一新,充实了更丰富语义的HTML5。但是,HTTP协议的局限性一直困扰着Web开发人员,阻碍他们开发媲美桌面应用程序的实时桌面应用程序,HTTP无状态、半双工的特性使得它在许多方面显得力不从心,而为此开发的Comet等技术也无法完全提供和桌面上基于TCP协议的Web应用程序类似的体验。

WebSocket的推出彻底扭转了这种局面,这种新技术基于标准、与语言无关,且能在其上灵活地增加标准协议层次,从而在HTTP架构中增加了一个全新的传输层。一经发布,Web开发人员对之无不争先恐后,了解这种技术也成了所有从事Web工作的开发人员、网络管理员的必修课。

本书用简单扼要的阐述、典型实用的例子,为读者提供了实施WebSocket技术所需要的主要基础知识,涵盖了对新旧HTTP架构的对比,在WebSocket上实施应用协议层次,WebSocket应用程序部署以及安全性等丰富内容。可以毫不夸张地说,对于初涉这一领域的读者来说,通读本书,除了掌握相关的知识之外,还会对WebSocket开发充满信心,并在将来的实践中喜欢上这门技术。

本书的翻译工作主要由姚军完成,徐锋、陈志勇、刘建林、白龙、宁懿等也为翻译工作作出了贡献。由于译者水平所限,书中难免出现一些错误,请广大读者多加批评指正,在此也感谢机械工业出版社华章公司的编辑们对翻译工作的大力支持。

姚军

浏览器无疑是当今最流行和最普及的部署平台。实际上,每台电脑、智能手机、平板电脑以及几乎所有其他可以想到的电子产品现在都能执行JavaScript、显示网页,当然也就能理解HTTP。这本身就是一个了不起的成就,特别是在你意识到,这一切的发生只不过花费了10年多一点的时间时。然而,这还只是开始。昨天的浏览器和现在的完全不同,这要归功于HTML5的革新。

HTML5 WebSocket的重要性再怎么强调都不过分:到现在为止,浏览器只能讲一种语言(HTTP),而这种语言不是为现代的实时Web所设计的。是的,我们用长轮询和Flash socket等过渡解决方案取得了进展,但是这些解决方案的复杂性和成本限制了我们的能力。WebSocket改变了一切:它是全新设计、与数据无关(二进制和文本)、全双工的,在字节数和延迟上都为最小化开销作了优化。

WebSocket是Web浏览器所用的TCP,且具有更健壮、更易用的API。突然之间,我们的客户可以在浏览器里直接使用任何网络协议,打开了一个全新的世界。一个XMPP聊天客户端?容易。需要将你的客户连接到在现有网络上部署的自定义二进制协议?没问题!更了不起的是,你可以在浏览器中使用你已经了解、喜爱和使用的Web创作工具在浏览器中直接编写脚本、设计样式和部署客户端。

昨日的浏览器与HTTP服务器通信。利用WebSocket,浏览器可以与任何对象通信,实现任何协议:完成HTTP握手、升级连接,都可以轻松做到。我们不再谈论建立稍好一点或者更有交互性的页面。有了WebSocket,我们可以建立能够直接在用户的浏览器中交付的全新应用类型和体验。

本书对WebSocket的概念及其所能解决的问题进行了全面的讨论,并且提供了许多可以直接使用的实用示例。你将会惊喜地发现,使用WebSocket是如此容易,用很少的代码可以实现如此之多的功能。使用WebSocket是快乐的经历,而Vanessa、Frank和Peter的这本书就是合适的指南。尽情品读吧!

Ilya Grigorik

Google“建立快速Web”项目的开发大使

致  谢

衷心感谢Peter Lubbers(Pro HTML5 Programming, 2nd ed.),他的指导和对HTML5的热心使本书成为可能。还要感谢Ilya Grigorik,他对Web性能和实时技术的热情非常鼓舞人心。感谢Steve Atkinson和Frank Greco不知疲倦、夜以继日地为我们提供深刻的反馈意见。感谢Jeff Mesnil和Dhurv Matani提供的杰出代码(可以在GitHub找到他们),这为本书带来了前沿示例。特别感谢Kaazing公司和Apress出版社的支持,它们为我们提供了机会和大家分享对WebSocket的热情。

—Vanessa Wang,Frank Salim,Peter Moskovits

我要将最深切的感谢献给Julian,感谢他的鼓励、支持和无尽的耐心。感谢了不起的Camper和Tilson,还要感谢Pins在深夜和清晨陪伴着我。特别感谢我的家人为帮助我完成本书所作出的牺牲。

最后,将感谢和敬意献给我杰出的合著者和朋友们—出色、有创意、热情的Frank和Peter。

—Vanessa Wang

我要衷心地感谢家人的支持,过去对你们的感谢还远远不够。我还要感谢April出色的建议和巨大的耐心。当然,我还要感谢合著者Vanessa和Peter。

—Frank Salim

谢谢你,Anna,感谢你在本书编写过程中极大的支持和理解以及更多。我要感谢可爱的Danka和Lea,他们非常体谅我,在我不得不坐下来工作时,他们没有伤心难过。特别要感谢Aniko不知疲倦的帮助。

最后但同样重要的是,很高兴能和两位合著者Vanessa和Frank一起工作,他们都是了不起的同行和朋友。感谢你们向我提供了这次机会,我享受合作中的每一个瞬间。

—Peter Moskovits

课课家教育

未登录