我有一个用例,我需要向 Android 或 IOS 客户端发送推送通知。通知事件应该是单播的。每条消息仅与单个客户端相关。
我怎样才能做到这一点?我以前使用如下代码向多个客户端广播事件。我想通过 SSE 向事件特定订阅者发送通知。
@GetMapping("/sse-emitter")
public SseEmitter sseEmitter() {
SseEmitter emitter = new SseEmitter();
Executors.newSingleThreadExecutor().execute(() -> {
try {
for (int i = 0; true; i++) {
SseEmitter.SseEventBuilder event = SseEmitter.event()
.id(String.valueOf(i))
.name("SSE_EMITTER_EVENT")
.data("SSE EMITTER - " + LocalTime.now().toString());
emitter.send(event);
Thread.sleep(1000);
}
} catch (Exception ex) {
emitter.completeWithError(ex);
}
});
return emitter;
}
PS 我正在使用这种方法来保存 SSEEmitters 的地图。
我会正确测试并在这里更新