中国领先的IT技术网站
|
|

2.2.6 HTML5的WebSocket技术和Pusher

《构建实时Web应用:基于HTML5 WebSocket、PHP和jQuery》第2章工具,本章将对要构建的应用有一个初步的了解,以学习如何使用实时Web技术。你将使用这个初步的了解来判定构建应用所需要的工具,并对每个工具的角色和功能做一个快速的浏览。本节为大家介绍HTML5的WebSocket技术和Pusher。

作者:肖智清 译来源:机械工业出版社|2013-09-29 20:43


2.2.6 HTML5的WebSocket技术和Pusher

我们已经对WebSocket和实时有所介绍。这些介绍可以概括如下:HTML5的WebSocket允许应用程序往客户端推送数据,而不再需要客户端不断地请求新数据。

练习2-6 试用新的WebSocket的API

让我们来看看原生的WebSocket的API接口,来了解它是如何使用的。用下面内容创建一个HTML文件。该文件包括连接到WebSocket回显测试服务的JavaScript。这意味着你可以测试消息的连接、发送和接收。

如果你在支持WebSocket的浏览器中打开这个页面,然后打开JavaScript的控制台,

你将会看到下面内容:

当WebSocket连接到服务器后,显示消息“connected”,调用函数处理程序onopen。接着,代码记录“>hello”来说明将通过WebSocket连接,使用WebSocket的send函数,向服务器发送“hello”。最后,当服务器回显消息时,则调用onmessage函数处理程序,往控制台上记录日志“<hello”。

上述内容演示了如何使用WebSocket API,并让你了解它是多么有用。但是,在第1章中已经提到,目前并不是所有浏览器都支持WebSocket API,所以我们需要一种反馈机制。因此,实现实时应用程序可能有些麻烦和微妙;如果需要我们自己解决浏览器兼容问题,则还很费时间。

幸运的是,对于我们而言,有许多服务可以克服这些困难,我们可以创建这样的API:首先检查其是否支持WebSocket,然后逐一检查下一个次优的解决方案,直到找到一种可行的方案。这样做可以得到一种比较有效的实时性能,而不用担心后向兼容性。

在提供实时服务的公司中,Pusher由于其易于实现、对用户基数小的服务是免费的、文档齐全和支持人员完善而出类拔萃。

Pusher提供了JavaScript库。该库不仅能处理旧浏览器的反馈,还提供像自动连接、通过API抽象“发布—订阅”(Publish/Subscribe)消息这些功能。如果我们使用原生WebSocket API,则会仅仅对一般性的消息进行处理。使用Pusher提供的这些功能与后者相比更易使用。

最后,因为Pusher是一个托管服务,所以它会为数据传输维护持久的连接,为我们处理扩展以适应不同的需求。尽管后一个优点对我们的示例应用程序而言帮助不大,但是在构建面向生产的应用程序时还是一个需要考虑的因素。

基于以上原因,本书将使用Pusher来构建实时应用。

1.为什么需要Pusher

Pusher允许我们为应用程序添加实时的通知和更新,包括以下几种情况。

当添加新问题时更新所有用户的应用程序:这意味着当一个用户添加新问题后,目前在那个房间使用该应用程序的所有用户会立即收到新问题。

当主持人将一个问题标注为“已回答”时,更新所有参与者的应用程序:当主持人回答问题并将其标注为“已回答”时,所有参与者的设备都会更新以避免混乱。

当多个参与者想要主持人回答同一问题时,更新主持人的应用程序:如果多个用户同时希望主持人回答某个问题,他们可以对该问题投票支持。主持人会收到视觉上的提示,以了解这个问题比较紧迫。

当房间关闭时更新所有参与者的应用程序:当主持人关闭房间时,需要更新参与者的应用程序,使得他们知道不要再问那些不会回答的问题了。

2.Pusher有什么作用

Pusher将作为应用的神经系统:在发生改变时,它会收到通知,然后将信息转给应用的“大脑”,使其能够处理信息。

3.Pusher如何工作

简单地说,Pusher提供了一种让客户端“侦听”应用改变的机制。当发生某些事情时,Pusher发出一个通知以告诉侦听中的客户端,使这些客户端做出合理的反应。这就是前面提到的“发布-订阅”范例。

第3章将讨论更详细的内容,所以该节就跳过练习了。

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢
24H热文
一周话题
本月最赞

读 书 +更多

嬴在用户:Web人物角色创建和应用实践指南

您如何保证您的网站确实给予用户他们所需要的,并对您产生商业成果?您需要了解谁是您的用户,您的用户的目标、行为和观点是什么,还要把他...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× 学习达标赢Beats耳机