WebSocket概述

WebSocket概述

概述

WebSocket需要Browser和Server两方面的支持。

WebSocket是基于TCP的一个双向协议,也就是说可以从Client发消息到Server,也可以从Server发消息到Client。那Http不是也可以吗?其实Http是一个请求一个响应,响应结束后连接就关闭了,Server再想发消息到Client就没有办法了。其实也就是说无状态的。譬如消息推送就很难用这种无状态的Http来实现,你不知道什么时候有消息要发给Client,重要的是Server根本不知道如何联系Client。WebSocket也就是为了解决这么一个问题,Server能够定位到WebSocket,所以一直保持这个连接。从这里可以获得更加形象具体的了解http://angelozerr.wordpress.com/2011/07/23/websocketsjettystep1/

WebSocket的Client端实现比较简单,只要Browser支持就好办了,可以参考这篇文章:Writing WebSocket client applications

WebSocket的Server端实现则是各个平台不一样,譬如Java或者NodeJS,这些你都可以在后面的相关参考里面找到。其中一篇基于Tomcat的实现的中文博客似乎比较简单明了http://redstarofsleep.iteye.com/blog/1488639

其实除了了解具体如何运用WebSocket之外,还需要知道该在什么场景中运用。个人理解,如聊天室或者网络游戏中是可以用到的。这里的一个共同的特点是,需要Server主动将消息推送到Client端。

相关参考:

Writing WebSocket client applications Sample from Mozilla

Socket.IO Socket.IO aims to make realtime apps possible in every browser and mobile device, blurring the differences between the different transport mechanisms. It's care-free realtime 100% in JavaScript.

WAMP WAMP is an open WebSocket subprotocol that provides two asynchronous messaging patterns: RPC and PubSub

WebSocket Server in Jetty Detail introduction WebSocket implementation in Jetty

WebSocket Server in Tomcat Detail introduction WebSocket implementation in Tomat, including client html and server java code

你可能感兴趣的:(WebSocket概述)