29 lines
748 B
Java
29 lines
748 B
Java
package com.superbiz.agent.controller.sse;
|
|
|
|
import org.springframework.http.MediaType;
|
|
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
|
|
|
import java.io.IOException;
|
|
import java.util.Objects;
|
|
|
|
final class SseEmitterChatSink implements ChatSseSink {
|
|
|
|
private final SseEmitter emitter;
|
|
|
|
SseEmitterChatSink(SseEmitter emitter) {
|
|
this.emitter = Objects.requireNonNull(emitter, "emitter must not be null");
|
|
}
|
|
|
|
@Override
|
|
public void send(String name, Object payload) throws IOException {
|
|
emitter.send(SseEmitter.event()
|
|
.name(name)
|
|
.data(payload, MediaType.APPLICATION_JSON));
|
|
}
|
|
|
|
@Override
|
|
public void complete() {
|
|
emitter.complete();
|
|
}
|
|
}
|