|
16 | 16 | */ |
17 | 17 | package org.apache.servicecomb.springboot.springmvc.server; |
18 | 18 |
|
| 19 | +import java.util.Arrays; |
| 20 | +import java.util.List; |
19 | 21 | import java.util.concurrent.TimeUnit; |
20 | 22 | import java.util.concurrent.atomic.AtomicInteger; |
21 | 23 |
|
|
34 | 36 | public class ReactiveStreamController { |
35 | 37 | @GetMapping("/sseString") |
36 | 38 | public Publisher<String> sseString() { |
37 | | - return Flowable.fromArray("a", "b", "c"); |
| 39 | + List<String> data = Arrays.asList("a", "b", "c"); |
| 40 | + return Flowable.intervalRange(0, 3, 5000, 1, TimeUnit.SECONDS) |
| 41 | + .map(item -> data.get(item.intValue())); |
38 | 42 | } |
39 | 43 |
|
40 | 44 | @GetMapping("/sseStringWithParam") |
41 | 45 | public Publisher<String> sseStringWithParam(@RequestParam(name = "name") String name) { |
42 | | - return Flowable.fromArray("a", "b", "c", name); |
| 46 | + List<String> data = Arrays.asList("a", "b", "c", name); |
| 47 | + return Flowable.intervalRange(0, 4, 5000, 1, TimeUnit.SECONDS) |
| 48 | + .map(item -> data.get(item.intValue())); |
43 | 49 | }; |
44 | 50 |
|
45 | 51 | @GetMapping("/sseModel") |
46 | 52 | public Publisher<Model> sseModel() { |
47 | | - return Flowable.intervalRange(0, 5, 0, 1, TimeUnit.SECONDS) |
| 53 | + return Flowable.intervalRange(0, 5, 5000, 1, TimeUnit.SECONDS) |
48 | 54 | .map(item -> new Model("jack", item.intValue())); |
49 | 55 | } |
50 | 56 |
|
51 | 57 | @GetMapping("/sseResponseEntity") |
52 | 58 | public Publisher<SseEventResponseEntity<Model>> sseResponseEntity() { |
53 | 59 | AtomicInteger index = new AtomicInteger(0); |
54 | | - return Flowable.intervalRange(0, 3, 0, 1, TimeUnit.SECONDS) |
| 60 | + return Flowable.intervalRange(0, 3, 5000, 1, TimeUnit.SECONDS) |
55 | 61 | .map(item -> new SseEventResponseEntity<Model>() |
56 | 62 | .event("test" + index) |
57 | 63 | .eventId(index.getAndIncrement()) |
|
0 commit comments