websocket 模拟QQ聊天

**websocket  模拟实现简单QQ聊天**

	**1.了解什么是websocket 协议?**
	 它是从HTML5开始提供的、基于TCP的、对传统HTTP协议(短连接)的升级版,在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送

在这里插入图片描述

**2.什么ajax轮询**
	轮询(Polling)是一种CPU决策如何提供周边设备服务的方式,又称“程控输出入”(Programmed I/O)。轮询法的概念是,由CPU定时发出询问,依序询问每一个周边设备是否需要其服务,有即给予服务,服务结束后再问下一个周边,接着不断周而复始。在WEB上来说就是客户端一直向服务端发起请求,服务端返回数据,不论返回什么都会再次向服务端发送请求。
	但是缺点也是很明显,访问量过大,会导致服务器压力过大。优点的话是很容易实现
	
	3.了解WebSocket的优点
	WebSocket API的优势在于服务器和客户端可以在固定的时间范围内的任意时刻,相互推送消息。在建立连接之后,服务器可以主动传送数据给客户端。WebSocket 并不限于以AJAX(或XHR)方式通信,因为Ajax技术需要客户端发起请求,而WebSocket服务器和客户端可以彼此相互推送信息。 
	
	4.怎么使用WebSocket
	(1)加入Spring+websocket所依赖的Jar包

在这里插入图片描述

(2)注册SebSocket处理器

在这里插入图片描述

(3)创建握手拦截器,重写beforeHandshake方法,这个方法负责拦截HttpSess中的数据,放到WebSocket Session 中

在这里插入图片描述

(4)处理页面文本消息,从WebSocket session中获取数据,在页面显示,并保存到数据库。

在这里插入图片描述

(5)js里面判断浏览器是否支持websocket,如果不支持就提示一下用户