You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot WebSocket Server无法连接问题求助(Unity客户端)

问题解决与路径说明

先明确你配置里的路径作用

  • /topic/public:这是STOMP协议的订阅主题,当服务器通过@SendTo指定这个路径时,所有订阅了该主题的STOMP客户端都会收到消息。
  • /sendMessage:结合配置里的setApplicationDestinationPrefixes("/app"),客户端需要通过STOMP协议发送消息到/app/sendMessage,服务器的@MessageMapping("/sendMessage")会处理这个请求,再把结果转发到/topic/public。

连接失败的核心原因

你Unity用的是原生WebSocket,但当前Spring Boot配置的是STOMP协议的WebSocket服务,两者协议不匹配:原生WebSocket只传输纯文本/二进制数据,而STOMP要求客户端发送符合其格式的帧(比如CONNECT、SEND指令),所以直接连接会失败。

适配原生WebSocket的解决方案

如果你要和普通Java服务端的WebSocket逻辑一致,实现基础聊天并在控制台看消息,需要改用Spring Boot的原生WebSocket实现:

1. 移除原STOMP配置类

删掉你原来的WebSocketConfig(带@EnableWebSocketMessageBroker的那个),换成原生WebSocket的配置:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;

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

2. 编写原生WebSocket服务端类

这个类负责处理客户端的连接、消息接收:

import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import org.springframework.stereotype.Component;

@ServerEndpoint("/ws")
@Component
public class ChatWebSocketServer {

    // 客户端连接成功时触发
    @OnOpen
    public void onOpen(Session session) {
        System.out.println("客户端[" + session.getId() + "]已连接");
    }

    // 收到客户端消息时触发
    @OnMessage
    public void onMessage(String message, Session session) {
        // 控制台打印收到的消息
        System.out.println("收到客户端[" + session.getId() + "]的消息: " + message);
        
        // 可选:回复消息给当前客户端
        try {
            session.getBasicRemote().sendText("服务器已收到: " + message);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

3. Unity端代码无需修改

你原来的Unity连接代码ws = new WebSocket("ws://localhost:8887/ws");完全适配这个原生WebSocket服务,发送消息后就能在Spring Boot控制台看到内容。

内容的提问来源于stack exchange,提问作者egepancaroglu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 03:26:15