模拟WebQQ实现简单的聊天,基于WebSocket

1. 什么是WebSocket

Html5提供的一种在单个TCP连接上进行全双工通讯协议。是基于TCP的,相对于传统HTTP协议的升级版(keep-Alive)。

----- “引用”
模拟WebQQ实现简单的聊天,基于WebSocket
WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输

在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送

2.ajax轮询(程控输出入)

----- “引用”
定义:
轮询(Polling)是一种CPU决策如何提供周边设备服务的方式,又称“程控输出入”(Programmed I/O)。轮询法的概念是,由CPU定时发出询问,依序询问每一个周边设备是否需要其服务,有即给予服务,服务结束后再问下一个周边,接着不断周而复始。
模拟WebQQ实现简单的聊天,基于WebSocket
在WEB上来说就是客户端一直向服务端发起请求,服务端返回数据,不论返回什么都会再次向服务端发送请求

用法:

$(function() {
	to_page();
        setInterval("isHave();",3000);
});
function isHave(){
	$.ajax({
		url : "localhost/isHave",
		data : {},
		datatype: "json",
		type : "post",	
		success : function(result) {										
		console.log(result);
			},
		} 
	});
}

优点
1.解决了多次握手的问题。
2.服务器可以推送数据给客户端。
缺点
效率低,当访问量大时,会对服务器造成压力。

3.WebSocket的优点

1.服务器和客户端任意在固定的时间内推送消息,在建立连接后,服务器可以主动传送给客户端。
2.不仅限于ajax方式通信,因为ajax需要客户端发起请求,而WebSocket服务器和客户端彼此相互推送信息。

4.WebSocket的使用

1.加入Spring+webSocket架包(4.1.5之后的版本)。
模拟WebQQ实现简单的聊天,基于WebSocket
2.注册WebSocket处理器。
模拟WebQQ实现简单的聊天,基于WebSocket
3.创建握手拦截器,重写beforeHandshake。
模拟WebQQ实现简单的聊天,基于WebSocket
4.从WebSocket Session获取数据,在页面显示并保存到数据库。
模拟WebQQ实现简单的聊天,基于WebSocket
5.js的使用。
模拟WebQQ实现简单的聊天,基于WebSocket