java - 在 Spring Boot 应用程序的 WebSocketConfigurer 中使用 @PathParam(javax.websocket.server.PathParam)

标签 java spring-boot websocket java-websocket

我创建了一个 Spring Boot 应用程序,我想在其中使用 Web 套接字。当我在没有参数的情况下使用它时,它工作正常。下面是不带参数的代码

@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer  {
    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        registry.addHandler(new ABC(), "/getABC").setAllowedOrigins("*");
        registry.addHandler(new XYZ(), "/getXYZ").setAllowedOrigins("*");
    }
}

但是现在我需要使用@PathParam 向它传递一个参数。我无法在这种配置中使用它,例如

registry.addHandler(new XYZ(), "/getXYZ{someId}").setAllowedOrigins("*");

我的处理程序代码:

public class XYZ extends TextWebSocketHandler {

        static List<WebSocketSession> sessions = new CopyOnWriteArrayList<>();
        String someId;

        public XYZ() {
        }

        public XYZ(@PathParam(value = "someId") String someId) {
            this.someId= someId;
        }

        @Override
        public void afterConnectionEstablished(WebSocketSession session) throws Exception {
            // the messages will be broadcasted to all users.
            sessions.add(session);
        }
    }

最佳答案

我认为语法有问题,请尝试使用

public XYZ(@PathParam("someId") String someId)

关于java - 在 Spring Boot 应用程序的 WebSocketConfigurer 中使用 @PathParam(javax.websocket.server.PathParam),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41800032/

相关文章:

java - 如何将我们使用 springboot 的 Rest API 应用程序中的域或 IP 地址列入白名单?

java - 并行流和 CompletableFuture 的区别

java - 目录层次结构

java - 是否可以将数组中的索引与颜色进行比较?

java - 计算通过 JUnit 调用函数的次数

node.js - WebSockets(Socket.io) 自动与 heroku 断开连接,我应该扩展吗?

javascript - Websocket 服务器在多人游戏中存在大量延迟

java - 纯 Java Spring Servlet 配置中没有类型的合格 Bean

java - 如何使用 Java spring 提供动态创建的文件?

jsf - Spring 引导 + JSF。 View *.jsf 正常工作但 *.xhtml 不正常