WebSocket 理解,聊天实现

(下面是个人理解) 

【聊天,消息推送方法】

WebSocket  实现双向通道,让消web消息推送更简单

WebSocket 是一种协议,基于TCP协议,HTTP也是一种协议,基于TCP协议。

ws协议和http协议扯不上关系:因为客户端建立ws会话要发送一个header标记了Upgrade 的请求,表示此协议升级。

ws重用现有代码(比如认证http请求,如果在tcp协议上实现,这个两个功能就要重新所有就在http上升级)然后返回101的http响应完成握手,之后在发数据就没有http的事了。

websocket约定了一个通信的规范

基于SHA加密方式

工作原理参考如下:

http://www.qixing318.com/article/643129914.html

游览器提供内置js WebSocket 函数

http和websocket不同 * WebSocket与HTTP最大的不同(Web服务器是不会主动断开连接的)

因为Http是无状态的,只有客户端发出请求更新,用户看到的信息才会更新,服务器没有办法主动回应,下面是消息推送的方法,和技巧

dwr框架

pushlet 框架 --》 利用ajax 轮询 长连接 客户端将显示加载中 服务器定时发送javascript片段来更新页面  来实现消息推送。

http://www.cnblogs.com/hoojo/p/longPolling_comet_jquery_iframe_ajax.html

长轮询 --》和轮询相似,发送请求到服务器,如果服务器没有可以返回的手,则不会立即返回空结果,而是保持这个请求等待数据来(或者超时),之后将结果发回给客户端。

【WebSocket 和 Socket 区别】

Socket 针对应用,客户端程序到服务器

(谷歌,苹果)IM 都是 基于xmpp 协议,长连接这个技术实现通信的)

(手机通信为什么要有第三发推送平台?因为自己写一个手机端的推送消息,需要协议 等一些技术问题,还是用别人的方便)

【WebSocket 历史】

需要HTML5的支持,Tomcat 7

此API为Tomcat私有,当时java没有标准API,现在java有标准API,JSR536,此API不建议使用,新的用法请参照

WebSocket聊天,消息推送(案例) 最新方法API

http://redstarofsleep.iteye.com/blog/1974620

不建议使用的API(因为即将失效)

http://redstarofsleep.iteye.com/blog/1488639


【HTML5 webSocket 规范】

http://www.ibm.com/developerworks/cn/web/1112_huangxa_websocket/




猜你喜欢

转载自blog.csdn.net/Uniquelike/article/details/25617271