我创建了一个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);
}
}
答案 0 :(得分:1)
我认为语法存在一些问题,请尝试使用
public XYZ(@PathParam("someId") String someId)