Spring boot 弹簧打开腹板锁连接

Spring boot 弹簧打开腹板锁连接,spring-boot,spring-websocket,Spring Boot,Spring Websocket,我使用SpringBootWebSocket来启用我的SpringBoot2微服务来处理Websocket连接 我的配置: @Configuration @EnableWebSocket public class WsConfig implements WebSocketConfigurer { @Autowired WebSocketHandler webSocketHandler; @Override public void registerWebSock

我使用SpringBootWebSocket来启用我的SpringBoot2微服务来处理Websocket连接

我的配置:

@Configuration
@EnableWebSocket
public class WsConfig implements WebSocketConfigurer {

    @Autowired
    WebSocketHandler webSocketHandler;

    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {

        DefaultHandshakeHandler handshakeHandler = new DefaultHandshakeHandler();
        handshakeHandler.setSupportedProtocols(HANDSHAKE_PROTOCOL);

        registry.addHandler(webSocketHandler, WS_HANDLER_PATH + WILDCARD)
                .setAllowedOrigins("*")
                .setHandshakeHandler(handshakeHandler);

    }
}
我的客户可以通过Websocket连接到我的服务。我正在实现
WebSocketHandler
接口来处理消息和日志连接

现在我的问题是:有没有一种方法可以显示所有当前的websocket用户/会话? 我试图使用SimpUserRegistry:

@Configuration
public class UserConfig {
    final private SimpUserRegistry userRegistry = new DefaultSimpUserRegistry();

    @Bean
    public SimpUserRegistry userRegistry() {
        return userRegistry;
    }
}
并通过REST端点显示用户

@RestController
public class WebSocketManager {

    private final SimpUserRegistry userRegistry;

    public WebSocketManager(SimpUserRegistry userRegistry) {
        this.userRegistry = userRegistry;
    }

    @GetMapping(path = "/users")
    public List<String> getConnectedUsers() {
        userRegistry.getUsers().stream()
                .map(SimpUser::getName)
                .forEach(System.out::println);
        System.out.println("Users " + userRegistry.getUsers());
        System.out.println("UsersCount " + userRegistry.getUserCount());
        return this.userRegistry
                .getUsers()
                .stream()
                .map(SimpUser::getName)
                .collect(Collectors.toList());
    }
}
@RestController
公共类WebSocketManager{
私有最终SimpUserRegistry用户注册表;
公共WebSocketManager(SimpUserRegistry用户注册表){
this.userRegistry=userRegistry;
}
@GetMapping(路径=“/users”)
公共列表getConnectedUsers(){
userRegistry.getUsers().stream()
.map(SimpUser::getName)
.forEach(System.out::println);
System.out.println(“Users”+userRegistry.getUsers());
System.out.println(“userscont”+userRegistry.getUserCount());
返回此.userRegistry
.getUsers()
.stream()
.map(SimpUser::getName)
.collect(Collectors.toList());
}
}
但这总是给我一个空列表:
[]
,即使显然已经建立了WS-connections

SimpUserRegistry
是否与Spring的Websocket系统一起工作,该系统配置了
WebSocketConfigurer
@EnableWebSocket
?我做错了什么?有什么建议或选择吗

提前谢谢你