0

我有一个用例,我需要向 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 的地图。

SSE Emitter:管理超时和完成()

我会正确测试并在这里更新

4

0 回答 0