写文不容易,请尊重原创:转载注明 http://blog.youkuaiyun.com/meng6098
项目应用:与公司电话系统链接,实现客户来电时客服电脑弹窗提醒并显示该客户备忘信息功能。
为了方便知识点介绍,单独把websocket拿出来做了一个简陋的聊天室。如下:
Websocket是什么?
Websocket是Html5上基于Http的另一种协议。 它实现了浏览器与服务器全双工通信(full-duplex)。
以前我们在实现即时通讯的解决方案,最古老的方案就是轮询。由浏览器对伺服器发出HTTP request,然后由伺服器返回最新的数据给客户端的浏览器。 这是依托在http1.0就可以实现的方案HTTP request 的header是非常长的,里面包含的数据可能只是一个很小的值,这样会占用很多的带宽和服务器资源。
后来http1.1以后就有了keep-alive也就是长链接,当页面包含多个元素时(例如Applet,图片),显著地减少下载所需要的时间。就有了比较新的技术去做轮询的效果是Comet,使用了AJAX。但这种技术虽然可达到双向通信,但依然需要发出请求,只是减少了链接,这也会大量消耗服务器带宽和资源。
以上两种方案虽然可以模拟双向即时通讯,但是都不是真正的双向即时通讯,并不是服务器端主动的向客户端发送数据。
太多的我也不过多介绍了,网络上一搜一大把,有的写的非常详细,原理也写的非常清楚,小生也好生佩服。那么下面就写点比较实用的东西。