在WebSocketConfigurer中使用@PathParam(javax.websocket.server.PathParam)进行Spring Boot应用程序

时间:2017-01-23 05:54:51

标签: java spring-boot websocket java-websocket

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

@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);
        }
    }

1 个答案:

答案 0 :(得分:1)

我认为语法存在一些问题,请尝试使用

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