首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >中SSE上的单播消息

中SSE上的单播消息
EN

Stack Overflow用户
提问于 2021-11-03 16:59:48
回答 1查看 427关注 0票数 2

我有一个用例,需要向Android或IOS客户端发送推送通知。通知事件应该是单播。每条消息仅与单个客户端相关。

我怎样才能做到这一点?我以前使用如下代码向多个客户端广播事件。我想向事件特定的订阅者发送通知,该订阅服务器的事件属于SSE。

代码语言:javascript
运行
复制
@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;
}

我使用这种方法保存SSEEmitters的地图。

SSE发射器:管理超时并完成()

我会对它进行正确的测试并在这里进行更新

EN

回答 1

Stack Overflow用户

发布于 2022-07-19 12:48:14

您可以利用Spring兼容的SSE事件总线库将客户端映射到唯一的id。这样你以后就能区分它们了。

那篇好文章 @Pankaj的一部分在评论中留下

..。库创建一个SseEventBus类型的bean,应用程序可以将其注入到任何中。

代码语言:javascript
运行
复制
@Controller
public class SseController {
  private final SseEventBus eventBus;
  public SseController(SseEventBus eventBus) {
    this.eventBus = eventBus;
  }

  @GetMapping("/register/{id}")
  public SseEmitter register(@PathVariable("id") String id) {
    return this.eventBus.createSseEmitter(id, SseEvent.DEFAULT_EVENT)
  }
}

库要求每个客户端发送一个唯一的id。应用程序可以使用像https://github.com/uuidjs/uuid这样的UUID库创建这样的id。为了启动SSE连接,客户端使用createSseEmitter方法调用端点,并发送他感兴趣的事件的id和(可选)名称。

代码语言:javascript
运行
复制
const uuid = uuid();
const eventSource = new EventSource(`/register/${uuid}`);
eventSource.addEventListener('message', response => {
    //handle the response from the server
    //response.data contains the data line 
}, false);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69828862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档