首页 > 解决方案 > 在 spring 中使用 websockets,如何发送多个更新消息?

问题描述

在此处给出的示例中https://spring.io/guides/gs/messaging-stomp-websocket/,一个接收数据,然后一秒钟后返回另一个数据结构。如果(例如)服务器正在处理数据,我将如何修改它以发送多个数据元素?

    @SendTo("/topic/greetings")
    public Greeting greeting(HelloMessage message) throws Exception {
    // I would like to send initial data here
        Thread.sleep(1000); // simulated delay
        return new Greeting("Hello, " + HtmlUtils.htmlEscape(message.getName()) + "!");
    // I would like to send more data here (after a bit more server side processing)
    }```

标签: springwebsocket

解决方案


(在科特林)。啊..这不起作用-它将它发送给所有客户

@Controller
public class GreetingController() {

    var template: SimpMessagingTemplate? = null

    @Autowired
    constructor(_template: SimpMessagingTemplate) : this() {
        this.template = _template
    }

    @MessageMapping("/hello")
    fun greet(greeting: String) {
        repeat(5) { i ->
            this.template!!.convertAndSend("/topic/greetings", Greeting("Iteration $i"));
            Thread.sleep(1000)
        }
    }
}

推荐阅读