spring-boot集成webSocket

工具、版本

开发工具:IntelliJ IDEA
JDK:1.8
spring-boot:2.6.0(事例使用,可根据自己版本调整)
maven:3.6.3

依赖jar

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.49</version>
        </dependency>

项目结构

在这里插入图片描述

结构介绍

一、websocket服务注册到spring容器

@Configuration
public class WebSocketConfig {
    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }
}
二、开放服务节点
@Slf4j
@Component
@ServerEndpoint("/socket/server/{clientId}")
public class SocketServer {


    private Logger logger = LoggerFactory.getLogger(SocketServer.class);

    @OnOpen
    public void onOpen(@PathParam("clientId") String clientId, Session session) throws IOException {
        logger.info("客户端{},上线。", clientId);
        session.getBasicRemote().sendText("欢迎上线。");
    }

    @OnClose
    public void onClose(@PathParam("clientId") String clientId) {
        logger.info("客户端{},离线。", clientId);
    }

    @OnError
    public void onError(@PathParam("clientId") String clientId, Throwable throwable) {
        logger.info("客户端{},异常及异常原因:{}。", clientId, throwable);
    }


    @OnMessage
    public void handler(String receiveMessage, Session session) {
        //接收消息
        logger.info("客户端发送消息内容:{}。", receiveMessage);
        try {
            session.getBasicRemote().sendText("收到:" + receiveMessage);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

测试

测试地址:http://coolaf.com/tool/chattest
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值