【问题标题】:Do a connection using EventSource from Android with HTTPS to Spring-Boot server (JAVA)使用带有 HTTPS 的 Android 的 EventSource 与 Spring-Boot 服务器(JAVA)建立连接
【发布时间】: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


    【解决方案1】:

    请问有什么更新吗?你找到解决办法了吗?

    【讨论】:

    • Hichem_Z,请不要添加 Me too 作为答案。它实际上并没有提供问题的答案。如果你有一个不同但相关的问题,那么ask它(如果它有助于提供上下文,请参考这个问题)。如果您对这个特定问题感兴趣,您可以upvote 它,留下comment,或者在您有足够的reputation 时开始bounty
    猜你喜欢
    • 1970-01-01
    • 2013-08-07
    • 2019-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    相关资源
    最近更新 更多