使用WebSocket模拟WebQQ实现简单的聊天

本文详细介绍了WebSocket协议,一种在单个TCP连接上进行全双工通讯的方法,解决了传统HTTP请求的多次握手问题,允许服务器主动向客户端推送数据。文章还概述了WebSocket的优缺点,模拟WebQQ实现聊天的步骤,以及常用事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.什么是WebSocket?
WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。
2.WebSocket的优点
1.WebSocket API的优势在于服务器和客户端可以在固定的时间范围内的任意时刻,相互推送消息。在建立连接之后,服务器可以主动传送数据给客户端
2.WebSocket 并不限于以AJAX(或XHR)方式通信,因为Ajax技术需要客户端发起请求,而WebSocket服务器和客户端可以彼此相互推送信息。
3.使用WebSocket模拟WebQQ实现简单聊天的步骤
1.加入Spring+websocket所依赖的jar包

在这里插入图片描述
2.注册WebSocket处理器
在这里插入图片描述
3.创建握手拦截器,重写beforeHandshake方法,这个方法负责拦截HttpSession中的数据,放到WebSocket Session中
在这里插入图片描述
4.处理页面文本消息,从WebSocket session中获取数据,在页面显示,并保存到数据库。
5.编写JS页面。
在这里插入图片描述
6.运行JSP页面。
4.WebSocket对象常用事件
onerror: 连接到服务端错误时触发
onmessage: 收到服务器推送的消息时触发
onclose: 连接关闭时触发
onopen: 连接到服务端成功后触发
5.WebSocket解决的问题
1.解决了多次握手的问题(长连接),提高效率
2.服务器可以推送数据给客户端,不需要客户端轮询等操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值