我创建了一个 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/