如何在没有 STOMP 的情况下使用 Spring 和 websockets 实现“while(true)”代码?

问题描述

我想在没有 STOMP 的情况下使用 WebSockets 实现一个 Spring Boot 应用程序。该应用程序涉及一个测验游戏,它将包含用于开始新测验的一段 while(true) 代码部分,并且在特定的秒数后,它将向连接的用户发送一个问题。用户将有回答问题的时间限制。随后,服务器将检索下一个问题并将其发送给连接的用户等。当测验结束时,服务器将自动开始新的测验。因此,整个过程从未停止,用户可以随时参加测验。

我已经实现了一个基本功能(请看下面的代码)。但是,我的问题是如何(以及在​​哪里)添加 while(true) 代码块来实现上述永无止境的功能

public class MyTextWebSocketHandler extends TextWebSocketHandler {

    private final List<WebSocketSession> sessions = new copyOnWriteArrayList<>();

    @Override
    protected void handleTextMessage(WebSocketSession session,TextMessage message) throws Exception {
        sessions.forEach(WebSocketSession ->
        {
            try {
                session.sendMessage(message);
            } catch (IOException e) {
                e.printstacktrace();
            }
        });
    }

    @Override
    public void afterConnectionestablished(WebSocketSession session) throws Exception {
        sessions.add(session);
        super.afterConnectionestablished(session);
    }

    @Override
    public void afterConnectionClosed(WebSocketSession session,CloseStatus status) throws Exception {
        sessions.remove(session);
        super.afterConnectionClosed(session,status);
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)