简介
本文介绍如何基于 SpringBoot 快速搭建 WebSocket 服务端和客户端。
WebSocket 使用场景
与 Http 协议相比,WebSocket 有两大优势:
- 支持服务端主动向客户端推送消息,不需要客户端进行轮询服务端。
- 节省网络带宽。维持一个长连接,客户端和服务端通信不需要频繁的建立连接。且互相沟通的Header非常小。
Quick Start
开始搞起
maven 依赖
1 | <!--服务端依赖--> |
服务端代码
新建一个 SpringBoot 应用。添加 MyWebSocket 类。
1 | import lombok.extern.slf4j.Slf4j; |
客户端代码
1 | import lombok.extern.slf4j.Slf4j; |
WebSocketConfig
用 SpringBoot 运行应用时,需要再添加一个配置文件,将 ServerEndpointExporter 注入 Bean 容器。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
/**
* 用spring boot运行应用时,打开 @Configuration 注释;使用 war 部署在tomcat时,关闭注释
*
*/
@Configuration
@Slf4j
public class WebSocketConfig {
@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
}
结语
搞定,好快~