spring-boot - SSE emitters received timeout at client side onmessage
问题描述
I am writing a web which as client side and using spring boot to write for server side for SSE using SseEmitter. However, when client first connected to server side, I can see the debugger executed smoothly at server side, when upon return emitter, client side onmessage received timeout: message. Can guide me if I did anything wrong? below are my coding, for both server and client side.
server:
@RestController
@RequestMapping("/")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class RateDataController {
private final CopyOnWriteArrayList<SseEmitter> emitters = new CopyOnWriteArrayList<>();
@GetMapping(value = "/subscribe", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public SseEmitter subscribe() {
SseEmitter emitter = new SseEmitter(Long.MAX_VALUE);
try {
emitter.send(emitter.event().name("INIT"));
} catch (IOException e) {
e.printStackTrace();
}
emitters.add(emitter);
emitter.onCompletion(() -> emitters.remove(emitter));
return emitter;
}
Client side:
eventSource = new EventSource(
'http://localhost:8080/subscribe')
eventSource.onopen = (event) => {
console.log('connection opened')
}
eventSource.onmessage = (event) => {
console.log('result', event.data)
}
Image on message received from server
Any advice will be appreciated. Thanks,
解决方案
推荐阅读
- python - 如何将 optirun 添加到 vscode 调试选项?
- php - 如何管理来自 csv 文件的数据 - php
- javascript - Stop Keyframe animation from automatic start on page load
- javascript - 隐藏显示页面的不同部分 javascript ASP.NET
- python - How to create capturing groups with regex re.compile?
- mysql - How to find purchase details of a specific customer in MYSQL?
- java - Android application crash at unknown source
- javascript - 在javascript中比较今天的日期和输入日期
- python - Google API 出现故障 - ImportError:无法导入名称“build”
- ansible - 我看到我的 ansible 剧本永远不会返回提示,当我启用 DEBUG 模式时,我看到一些东西正在循环运行