我可以使用webflux为我的客户接收实时通知吗?

时间:2019-09-06 13:25:04

标签: spring-boot spring-webflux

我有两个系统,一个是旧系统,另一个是新系统。每次更新旧版时,都需要实时更新新系统。有了这个,我认为webflux会对我有所帮助,所以我用mongo等创建了一个POC,

@RestController
public class ConversionTableProductTypeResource {

    @Autowired
    private ConversionTableProductTypeService service;

    @GetMapping()
    public Flux<ConversionTableProductType> getAll() {
        return service.findAll();
    }

    @GetMapping(value = "/stream",  produces = MediaType.TEXT_EVENT_STREAM_VALUE)
    public Flux<ConversionTableProductType> getAllStream() {
        return service.findAll();
    }

    @PostMapping()
    public Mono<ConversionTableProductType> createTweets(@Valid @RequestBody ConversionTableProductType tweet) {
        return service.save(tweet);
    }

    @DeleteMapping("/{id}")
    public Mono<ResponseEntity<Void>> deleteTweet(@PathVariable(value = "id") String tweetId) {

        return service.findById(tweetId)
                .flatMap(existingTweet ->
                        service.delete(existingTweet)
                                .then(Mono.just(new ResponseEntity<Void>(HttpStatus.OK)))
                )
                .defaultIfEmpty(new ResponseEntity<>(HttpStatus.NOT_FOUND));
    }

}

然后我认为这是解决我的问题的方法,因为我认为旧版可以更新mongo,而我的屏幕也可以神奇地自我更新。

可能是我的测试不正确,因为我通过浏览器或邮递员进行了/ stream调用。

如果我在想正确的方法,请问一下,如果这样,我做错了什么?

0 个答案:

没有答案