SpringBoot+WebSocket的使用

  • WebSocket协议是基于TCP的一种新的网络协议。他实现了浏览器与服务器全双工(Full-duplex)通信,即允许服务器自动发送信息给客户端,这样就可以实现从客户端发送消息到服务器;而服务器又可以发送消息到客户端,这样就能够实现两者之间的交互。目前大部分浏览器已经实现了WebSocket协议,但是也有一部分浏览器没有实现WebSocket协议,为了兼容那些没有实现该协议的浏览器,往往还需要通过STOMP协议来完成这些兼容。这篇博客主要针对于SpringBoot+WebSocket来实现消息的发送与处理。
  • 首先构建一个springBoot项目,然后引入倚赖:
 		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
  • 对于WebSocket的使用,可以先通过Spring创建java配置文件。在这个文件中先建ServerEndPointExporter对象,通过他可以定义WebSocket服务器的端点,这样客户就可以请求这个端点,从而实现两者的交互:
@Configuration
public class WebSocketConfig {
   

    @Bean
    public ServerEndpointExporter serverEndpointExporter () {
   
        return new ServerEndpointExporter();
    }
}

有了这个Bean,就可以使用@ServerEndpoint注解定义一个服务端类,然后在这个类中定义WebSocket的打开、关闭、错位、发送信息等方法

  • 创建服务站点
@ServerEndpoint(value = "/ws/test")
@Component
public class WebSocketServer {
   


    @PostConstruct
    public void init() {
   
        System.out.println("websocket已加载");
    }

    private static Logger log = LoggerFactory.getLogger(WebSocketServer.class);
    private static final AtomicInteger OnlineCount = new AtomicInteger(0);
    // concurrent包的线程安全Set,用来存放每个客户端对应的Session对象。
    public static CopyOnWriteArraySet<Session> SessionSet = new CopyOnWriteArraySet<Session>();


//这里为什么采用这种方式获取bean文章后边有说明
    private MySendMessageImpl mySendMessageImpl = (MySendMessageImpl
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值