WebSocket 简单使用 关于WebSocket 我打算分如下几篇博文来探探路:WebSocket 简单使用(一) - 概念 WebSocket 简单使用(二) - 客户端 WebSocket 简单使用(三) - 服务器端 WebSocket 简单使用(四) - 完整实例 WebSocket 简单使用(五) - 模拟微信 连接键盘 功能 背景:前几天老大突然发现微信有个链接键盘的功能,我仔细想了下或许是使用WebSocket来实现的,又加上最近HTML5的呼声愈来愈高,觉得有必要研究下HTML5了。 HTML5作为下一代WEB 标准,拥有许多引人注目的新特性,如Canv as、本地存储、多媒体 编 程 接口 、 WebSocket 等 等 。今 天我们 就 来看 看 具 有“Web TCP” 之 称 的WebSocket.WebSocket 的出现是基于Web 应用的实时性需要而产生的。这种实时的Web应用大家应该不陌生,在生活中都应该用到过,比如新浪微博的评论、私信的通知,腾讯的WebQQ 等。让我们来回顾下实时 Web 应用的窘境吧。 在 WebSocket 出现之前,一般通过两种方式来实现Web 实时用:轮询机制和刘技术;其中轮询有不同的轮询,还有一种叫 Comet 的长轮询。 轮询:这是最早的一种实现实时 Web 应用的方案。客户端以一定的时间间隔向服务端发出请求,以频繁请求的方式来保持客户端和服务器端的同步。这种同步方案的缺点是,当客户端以固定频率向服务 器发起请求的时候,服务器端的数据可能并没有更新,这样会带来很多无谓的网络传输,所以这是一种非常低效的实时方案。 长轮询:是对定时轮询的改进和提高,目地是为了降低无效的网络传输。当服务器端没有数据更新的时候,连接会保持一段时间周期直到数据或状态改变或者 时间过期,通过这种机制来减少无效的客户端和服务器间的交互。当然,如果服务端的数据变更非常频繁的话,这种机制和定时轮询比较起来没有本质上的性能的提 高。 流:常就是在客户端的页面使用一个隐藏的窗口向服务端发出一个长连接的请求。服务器端接到这个请求后作出回应并不断更新连接状态以保证客户端和服务 器端的连接不过期。通过这种机制可以将服务器端的信息源源不断地推向客户端。这种机制在用户体验上有一点问题,需要针对不同的浏览器设计不同的方案来改进 用户体验,同时这种机制在并发比较大的情况下,对服务器端的资源是一个极大的考验。 上述方式其实并不是真正的实时技术,只是使用了一种技巧来实现的模拟实时。在每次客户端和...