websocket简单的java代码示例

本文详细介绍了如何使用Java和SpringBoot结合Tomcat和SpringWebSocket实现WebSocket服务端和客户端的TCP连接,包括代码示例和环境配置,适用于学习者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.说明

关于websocket的介绍,有许多的文章都讲的很详细也很好,这里就不再赘述。这里提供websocket的java代码简单实现,包括js的客户端和后台java的服务端,后端使用TomcatWebsocket和SpringWebSocket两种方式,实现tcp连接和通信,以供大家学习参考。

2.环境准备

后端使用SpringBoot加Maven构建项目,前端直接使用html加js实现。请先准备一个能够跑起来的SpringBoot后端项目。
添加websocket的maven依赖(pom.xml):

		<!-- webSocket的依赖 -->
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-websocket</artifactId>
           <version>2.7.12</version>
       </dependency>

3.TomcatWebsocket后端代码

3.1 websocket配置类

将这个配置类加入项目中。


/**
 * 配置后会自动注册所有的 @ServerEndpoint,一定不要忘记这个配置类
 * @author 广大网友
 */
@Configuration
public class WebSocketConfig {

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

3.2 websocket服务端代码

@ServerEndpoint注解添加服务端路径 path ,客户端在建立连tcp接时就使用:var ws = new WebSocket(“ws://你的后台项目地址/path”); 建立连接。需要携带参数时:var ws = new WebSocket(“ws://你的后台项目地址/path?accessToken=某某”) 建立连接。

import org.springframework.stereotype.Component;

import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.List;

/**
 * TomcatWebSocket服务端
 *
 * @author 别人家的孩子e
 */

@Component
@ServerEndpoint("/test/tomcatWebsocket")
public class WebSocketEndPoint {


    /**
     * 注意,多个会话会公用这一个num对象
     */
    private static Integer num = 1;

    /**
     * tcp连接建立时触发
     */
    @OnOpen
    public void onOpen(Session session) throws IOException {
        System.out.println("会话:" + session.getId() + "的tcp连接已建立。");
        //获得路径中携带的参数,通常为认证token
        List<String> accessToken = session.getRequestParameterMap().get("accessToken");
        //注意判路径中是否有携带参数
        if (accessToken != null && accessToken.size() > 0){
            String token = accessToken.get(0);
            System.out.println("会话人token:" + token);
        }else {
   
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值