websocket介绍以及springboot集成websocket

WebSocket是一种全双工通信协议,解决了HTTP协议只能由客户端发起请求的问题。本文介绍了WebSocket相对于HTTP的轮询和长轮询的优势,并详细讲解了在SpringBoot项目中集成WebSocket的步骤,包括引入依赖、配置WebSocketHandler、拦截器和WebSocketConfig,以及如何编写推送信息的方法。此外,还提供了Vue前端调用WebSocket的参考资料链接。
摘要由CSDN通过智能技术生成

    首先来解释一下websocket,websocket是全双工通信的协议,我们知道已有的http协议是一种只能由客户端发起请求的协议,如果我们想要让服务器端向客户端主动发送信息或者实时数据更新,用http协议的话比较麻烦。简略介绍一下用http协议实现

   第一种:轮询,顾名思义在客户端设置一个固定时间间隔,比如每过五秒向服务器发送一次请求,不管数据有没有变化,服务器接收到请求后立刻处理将结果返回给客户端,导致频繁次数访问服务器,占用大量带宽和服务器内存,并且这种有一定延迟性

   第二种:长轮询,是从客户端发起请求,如果服务器暂无更新数据,那么便将这个请求暂时挂起,等到有数据变化的时候再处理将结果返回给客户端。这种方式解决了轮询的延迟性,但是由于请求挂起,也会消耗过多服务器内存、

   下面来介绍一下websocket,webscoket通过由客户端向服务器端发送socket请求,客户端和服务器端通过握手之后建立连接,之后服务器就可以向客户端主动推送信息了

    在一般的springbootweb项目中,我们在接口中有两种方式来使用websocket,tomcat服务器自带websocket,我这里介绍的是springboot集成的websocket,我额外使用了websocket的拦截器。

    第一步:引入websocket依赖

		<!--使用websocket实现消息推送-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-websocket</artifactId>
		</dependency>
		<!-- web项目启动依赖 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

第二步:配置websocketHandler


import com.liyang.entity.Admin;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.web.socket.*;

import java.io.IOException;
import java.util.ArrayList;

@Service
public class WebSocketServiceImpl implements WebSocketHandler {
    private static final Logger log;
    //在线管理员信息组
    private static final ArrayList<WebSocketSession> admins;

    static {
        admins &#
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值