【发布时间】:2020-10-16 21:32:14
【问题描述】:
我正在使用 JavaScript 收听我的 /score 端点,如下所示:
var sse = new EventSource('/score');
sse.onmessage = function (evt) {
var el = document.getElementById('scores');
el.appendChild(document.createTextNode(evt.data));
el.appendChild(document.createElement('br'));
};
但由于某种原因,它就像每秒调用的端点。
EventSource.onmessage 文档说:
是一个EventHandler在收到消息事件时调用,即消息来自源时
这是我的/score 端点:
private ExecutorService executorService = Executors.newCachedThreadPool();
@GetMapping("/score")
public SseEmitter getScore() {
final SseEmitter sseEmitter = new SseEmitter();
executorService.submit(() -> {
try {
//System.out.println(text);
//sseEmitter.send(text);
sseEmitter.send("ok");
sseEmitter.complete();
} catch (Exception e) {
e.printStackTrace();
}
});
return sseEmitter;
}
只有在我手动发送请求时才能触发它?
【问题讨论】:
标签: javascript java spring-boot spring-mvc