【发布时间】:2020-10-09 21:15:20
【问题描述】:
我正在用 Spring MVC 编写一个信使,我希望那个在线用户可以从服务器接收消息。我找到了它的 SSE 的最佳解决方案,创建了这个方法,但是如果所有活动(在线)用户都订阅了这个方法,服务器如何必须知道哪个用户应该收到这个消息?
@GetMapping("/stream-sse-mvc")
public SseEmitter streamSseMvc() {
SseEmitter emitter = new SseEmitter();
ExecutorService sseMvcExecutor = Executors.newSingleThreadExecutor();
sseMvcExecutor.execute(() -> {
try {
for (int i = 0; true; i++) {
SseEventBuilder event = SseEmitter.event()
.data("SSE MVC - " + LocalTime.now().toString())
.id(String.valueOf(i))
.name("sse event - mvc");
emitter.send(event);
Thread.sleep(1000);
}
} catch (Exception ex) {
emitter.completeWithError(ex);
}
});
return emitter;
}
【问题讨论】:
标签: java spring spring-mvc server-sent-events