下边实现了一个持续返回100以内随机数的接口,在接口超时之前会每隔1秒返回一个随机数
@GetMapping(value = "/getRandomNum", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public SseEmitter getRandomNum() {
SseEmitter emitter = new SseEmitter();
ThreadLocalRandom random = ThreadLocalRandom.current();
new Thread(() -> {
try {
while (true) {
int price = random.nextInt(100);
emitter.send(SseEmitter.event().data(price));
Thread.sleep(1000);
}
} catch (Exception e) {
emitter.completeWithError(e);
}
}).start();
return emitter;
}
下边是postman调用效果图