Tornado编程-WebSocket原理及代码示例

一. WebSocket协议

WebSocket 协议本质上是一个基于 TCP 的协议。

为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常的 HTTP 请求不同,包含了一些附加头信息,其中附加头信息”Upgrade: WebSocket”表明这是一个申请协议升级的 HTTP 请求,服务器端解析这些附加的头信息然后产生应答信息返回给客户端,客户端和服务器端的 WebSocket 连接就建立起来了,双方就可以通过这个连接通道自由的传递信息,并且这个连接会持续存在直到客户端或者服务器端的某一方主动的关闭连接。

由于这个规范目前还是处于草案阶段,版本的变化比较快,通常采用 draft-hixie-thewebsocketprotocol-76 版本来描述 WebSocket 协议,详情可访问 http://dev.w3.org/html5/websockets/。

二. Firefox的WebSocket实现

1. 请求

2. 应答

三. 基于Tornado3.1的WebSocket编程实现

1.HTML示例
注:基于jQuery、Bootstrap,同时将websocket.html保存在websocket.py同级的template目录下

2.python示例

 

teakki

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: