Springboot实现WebSocket通信(一)
本篇介绍下基于Tomcat实现WebSocket通信。
下面简要介绍下实现过程
一、项目中引入下面的依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
二、编写配置类,将WebSocket注入到Spring容器中
该容器主要用于声明一个ServerEndPointExporter Bean,ServerEndPointExporter对象能将@ServerEndPoint修复的类注入到Spring容器。
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;@Configuration
public class WebSocketConfig {@Beanpublic ServerEndpointExporter serverEndpointExporter(){return new ServerEndpointExporter();}}
三、编写WebSocket服务类,并交给Spring进行管理。
在这个服务类里,主要通过以下注解实现WebSocket的连接、关闭、发送信息、异常处理
通过给该类添加@ServerEndPoint注解,当Spring应用启动时,扫描到该类,从而启动WebSocket服务,用户才能连接到WebSocket服务器。
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;@Slf4j
@Component
@ServerEndpoint("/app/socket/{token}")
public class SocketServer {@OnOpenpublic void onOpen(Session session, @PathParam("token") String token) {log.info("连接上了......");}@OnMessagepublic void onMessage(String message, Session session, @PathParam("token") String token) {log.info("发送消息......");}@OnClosepublic void onClose() {log.info("断开连接......");}@OnErrorpublic void onError(Throwable error) { //Throwable error参数必须传log.info("用户下线......");}
}
上面的只是简单介绍下实现步骤,实际开发中,请结合业务加入自己的逻辑处理。