如何解决SSE 发射器在客户端 onmessage 收到超时
我正在编写一个 web 作为客户端,并使用 spring boot 使用 SseEmitter 为 SSE 编写服务器端。但是,当客户端第一次连接到服务器端时,我可以看到调试器在服务器端顺利执行,当返回发射器时,客户端 onmessage 收到超时:消息。如果我做错了什么,可以指导我吗?下面是我的代码,用于服务器端和客户端。
服务器:
@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;
}
客户端:
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
任何建议将不胜感激。谢谢,
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。