【发布时间】:2022-07-19 23:32:40
【问题描述】:
我有一个只接受 https 请求的 spring-boot 服务器,关键是我需要它能够使用 SSE 与客户端(android)通信。
我已配置服务器,以便他们可以订阅和接收事件。用浏览器测试它工作得很好。但是我找不到任何可以让我使用 https 连接到服务器的实现。
这是我的 Spring-Boot 控制器中的代码:
public class NewsController {
public List<SseEmitter> emitters=new CopyOnWriteArrayList<>();
// method for client subscription
@CrossOrigin
@RequestMapping(value = "/subscribe", consumes=MediaType.ALL_VALUE)
public SseEmitter subscribe(){
SseEmitter sseEmitter=new SseEmitter(Long.MAX_VALUE);
try{
sseEmitter.send(SseEmitter.event().name("INIT"));
}catch (IOException e){
e.printStackTrace();
}
sseEmitter.onCompletion(() -> emitters.remove(sseEmitter));
emitters.add(sseEmitter);
return sseEmitter;
}
// method for dispatching events to all clients
@PostMapping(value="/dispatchEvent")
public String dispatchEventToClients (@RequestParam String dataEvent){
for(SseEmitter emitter:emitters){
try{
emitter.send(SseEmitter.event (). name("Event").data(dataEvent));
}catch (IOException e){
e.printStackTrace();
}
}
return "WORKS";
}
}
【问题讨论】:
标签: java android spring-boot https server-sent-events