1、网站中的消息功能如何实现?
思考:像这样的消息功能怎么实现? 如果网页不刷新,服务端有新消息如何推送到浏览器?
解决方案:采用轮询的方式。即:通过
js
不断的请求服务器,查看是否有新数据,如果有,就获取到新数据。
这种解决方法是否存在问题呢?
当然是有的,如果服务端一直没有新的数据,那么
js
也是需要一直的轮询查询数据,这就是一种资源的浪费。
那么,有没有更好的解决方案?
有!那就是采用
WebSocket
技术来解决。
2
、什么是
WebSocket
?
WebSocket
是
HTML5
一种新的协议。它实现了浏览器与服务器全双工通信
(full-duplex)
。一开始的握手需要借助
HTTP
请求完成。
WebSocket
是真正实现了全双工通信的服务器向客户端推的互联网技术。 它是一种在单个
TCP
连
接上进行全双工通讯协议。
Websocket
通信协议与
2011
年倍
IETF
定为标准
RFC 6455
,
Websocket API
被
W3C
定为
标准。
3、http
与
websocket
的区别
3.1、http:http
协议是短连接,因为请求之后,都会关闭连接,下次重新请求数据,需要再次打开链接。
3.2、websocket:WebSocket
协议是一种长链接,只需要通过一次请求来初始化链接,然后所有的请求和响应都是通过这个
TCP
链接
进行通讯。
服务器支持情况:Tomcat 7.0.47+以上才支持。