Untitled

 avatar
unknown
plain_text
22 days ago
1.1 kB
1
Indexable
package com.hdfc.epi.controller;

import com.hdfc.epi.service.SseService;
import lombok.extern.log4j.Log4j2;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;



@RestController
@Log4j2
public class SSEController {
    private final SseService sseService;
    public SSEController(SseService sseService){
        this.sseService = sseService;
    }
    @CrossOrigin(origins = "*")
    @GetMapping(value = "/stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
    public ResponseEntity<SseEmitter> streamEvents(@RequestParam(name = "ulid") String ulId) {
        return ResponseEntity.ok(sseService.handler(ulId));
    }

    @CrossOrigin(origins = "*")
    @PostMapping(value = "/publish", produces = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<Boolean> publish(@RequestHeader("ULID") String ulId) {
        sseService.publishToEmitter(ulId);
        return ResponseEntity.ok(Boolean.TRUE);
    }

}
Leave a Comment