内容简介
实时Web应用开发领域的经典著作,由实时Web技术领域的布道者和Web开发工程师撰写。不仅详细讲解了构建实时Web应用所需的各项技术,还系统讲解了实时Web应用规划与设计的的过程和方法,为构建实时Web应用提供了翔实的指导。此外,本书包含大量代码和设计示例,实战性极强。
全书一共10章:第1章介绍了什么是实时Web技术及其原理;第2章详细讲解了构建实时Web应用需要哪些技术和工具;第3章讲解了如何利用Pusher构建实时Web应用;第4章介绍了如何根据需要在Web应用和原生应用之间做出选择;第5章讲解了如何规划应用程序的功能和结构;第6章讲解了实时Web应用的设计,第7章讲解了如何为实时Web应用创建HTML和CSS标记;第8章和第9章则详细地讲解了如何构建实时Web应用的后端程序;第10章讲解了如何实现实时事件和jQuery效果。
目录
目录
译者序
前言
第一部分 熟悉必备技术
第1章 什么是实时 / 2
1.1 传媒的演化 / 2
1.1.1 是网站而不是Web应用 / 3
1.1.2 HTTP解决方案 / 4
1.1.3 一个先要解决的问题:实时究竟意味着什么 / 5
1.1.4 AJAX / 5
1.1.5 轮询 / 5
1.1.6 HTTP长轮询 / 7
1.1.7 HTTP流 / 8
1.1.8 在Web浏览器中使用基于HTTP的解决方案的其他问题 / 9
1.2 解决方案:WebSocket / 11
1.3 为什么要学习实时Web技术 / 13
1.4 请即刻在你的应用中使用实时Web技术 / 14
1.5 小结 / 14
第2章 工具 / 15
2.1 我们要构建什么 / 15
2.2 选择工具 / 16
2.2.1 HTML5 / 16
2.2.2 CSS3 / 19
2.2.3 Javascript和jQuery / 22
2.2.4 PHP / 26
2.2.5 MySQL / 28
2.2.6 HTML5的WebSocket技术和Pusher / 31
2.2.7 OAuth / 33
2.3 小结 / 35
第3章 Pusher / 36
3.1 Pusher简史 / 36
3.2 为什么要使用Pusher / 36
3.2.1 扩展性 / 37
3.2.2 WebSocket、旧技术支持和自动重连接 / 37
3.2.3 其他客户端库 / 37
3.2.4 REST API / 37
3.2.5 服务器库 / 37
3.2.6 开发人员工具 / 38
3.2.7 文档 / 38
3.3 Pusher中的术语 / 38
3.4 开始使用Pusher / 39
3.5 使用Pusher发送事件 / 45
3.6 调试Pusher应用程序 / 54
3.7 小结 / 55
第二部分 规划应用
第4章 选择Web应用 / 58
4.1 为什么要在Web应用与原生应用间做抉择 / 58
4.2 要考虑的因素 / 58
4.2.1 了解用户 / 59
4.2.2 市场推广 / 59
4.2.3 销售 / 61
4.2.4 发布应用程序 / 61
4.2.5 外观和性能 / 62
4.2.6 开发 / 63
4.3 根据需要进行选择 / 66
4.3.1 选择Web应用而不是原生应用 / 67
4.3.2 的决定:构建Web应用程序 / 67
4.4 小结 / 68
第5章 确定应用的功能和结构 / 69
5.1 应用要做什么 / 69
5.2 应用不做什么 / 69
5.3 用户扮演的角色 / 70
5.3.1 主持人 / 70
5.3.2 参与者 / 70
5.4 前端规划 / 71
5.4.1 要使用的技术 / 71
5.4.2 使用HTML5 / 71
5.4.3 CSS3、媒体查询以及它们如何影响设计和HTML / 74
5.4.4 效果和动画 / 78
5.5 后端规划 / 79
5.6 将所有这些整合入线框图中 / 85
5.6.1 筹划主页 / 85
5.6.2 筹划参与者的问答页面 / 85
5.6.3 筹划主持人的问答页面 / 86
5.7 小结 / 87
第三部分 构建基本内容
第6章 设计应用 / 90
6.1 为设计设置目标 / 90
6.2 定义颜色面板 / 91
6.3 选择字体 / 91
6.4 设计常见的页面元素 / 93
6.4.1 创建页眉 / 93
6.4.2 创建页脚 / 95
6.4.3 表单元素 / 96
6.5 设计主页视图 / 100
6.5.1 创建房间的表单 / 100
6.5.2 加入房间的表单 / 102
6.6 设计房间视图 / 104
6.6.1 设计参与者视图 / 104
6.6.2 设计关闭的房间视图 / 105
6.6.3 设计主持人视图 / 105
6.7 小屏幕布局 / 107
6.8 小结 / 108
第7章 创建HTML和CSS标记 / 109
7.1 开始构建基本部分:设置HTML5文档 / 109
7.2 获得需要的字体 / 110
7.3 常见的元素 / 113
7.3.1 页眉标记 / 113
7.3.2 页脚标记 / 114
7.3.3 样式 / 115
7.3.4 使得页眉和页脚具有响应 / 119
7.4 开发主页视图 / 120
7.4.1 编写标记 / 120
7.4.2 添加媒体查询 / 126
7.5 开发参与者的活动房间视图 / 127
7.5.1 编写标记 / 128
7.5.2 实现CS
摘要与插图
前 言几年前,我参加了一个名为“Keeping It Realtime”的会议。在那个会议中,许多演讲者都是实时行业中的人士,他们正在解决人们闻所未闻的问题。
在那时,技术的力量正在推进,实时技术的应用领域令人惊讶。当时,我想了解更多的信息,所以我就立即开始了解实时技术。那么,我是怎样开始在自己的应用程序中使用这个神奇的新东西呢?
我走进了距离我的一个分会场,与其中的听众坐在一起,我马上就被其中的内容迷住了。在讲台上,一个留着小胡子的人使用他的笔记本电脑,一边对着麦克风说话,一边用惊人的速度在Vim中编写代码。在那时,我能看出他在初始化socket.io,他已经完成了应用程序的一半。
我马上就沉迷其中了。同时,我开始思考,这个令人惊叹的技术是不是只能供极少数的精英开发人使用?如果我没有那个教授实时技术的人那么厉害,我是否还应该构建自己的应用程序?
如果你曾让一个聪明的开发人员做一些事,你也许会有这样的感觉:当某人的聪明程度到了一定境界后,他们有时就不会告诉我们他们曾经用过的技术。这意味着我们可能需要研究海量复杂的代码、标准和文档,或只能放弃。
本书旨在帮助我们揭开实时编程的神秘面纱,使得所有具有中等PHP和Javascript水平的开发人员都能够进行实时编程。如果你想即刻将实时技术用在实际的项目中,那么你并不需要知道构建Flash polyfill或维护Node.js的方法,你只需要学习本书即可。
我们相信,虽然理论是有趣和必要的,但是实际开发更激动人心。实际开发将理论运用于实际,实现了理论的价值。在,将以简单的方式设置本书使用的技术,而不需要你学习新的编程语言或框架。本书基于的Web技术与那些行的应用、网站、内容管理系统使用的技术相同。
实时技术应该属于广大的群众。现在,为自己倒一杯咖啡,或沏一杯茶,开始学习实时技术,你能够在实时技术没落前编写出具有实时功能的程序。
致谢
本书的诞生要感谢Phil Leggetter,他使进度不断推进。他添加了大量与技术有关的背景信息,并就添加详细的解释和例子做了很多工作。没有他的帮助,本书可能就半途夭折了。
Ben和Ana:感谢你们的耐心。
Alison:感谢你在我每天晚上通宵写书的情形下没有弃我而去。
Nate:感谢你提供友好的竞争环境,在我完成每一个目标的情况下提醒我还需进行下一步的工作。
我的父亲:感谢您一直支持我。我的妈妈:感谢这些年来您与爸爸一起将我哺育成人。
Drew:感谢你来到Copter Labs,使得我有足够的时间来完成这个工作。Alex、Anne、Jason、Kevin、Rob、Roger和Wes:感谢你们加入Copter团队。
由于Richelle、Troy、Taunja、Chris和其他朋友的帮助,使我避免成为从不打扫卫生的“隐士”,感谢你们继续邀请我做一些事情。
——Jason Lengstorf