我想每次改变整数变量时发送更新
@PutMapping
public void update() {
integer = random.nextInt();
}
@GetMapping(produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<Integer> eventFlux() {
Flux<Integer> eventFlux = Flux.fromStream(
Stream.generate(() -> integer)
);
return Flux.zip(eventFlux, onUpdate()).map(Tuple2::getT1);
}
private Flux<Long> onUpdate() {
return Flux.interval(Duration.ofSeconds(1));
}
您可以使用一个FLUXPORTER
作为:
用户
;您可以使用它向其中添加数字: @PutMapping("/{number}")
public void update(@PathVariable Integer number) {
processor.onNext(number);
}
Publisher
(Flux
);哪些客户端可以订阅接收添加的号码: @GetMapping(produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<Integer> eventFlux() {
return processor;
}
以下是一个完整的工作示例:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.reactive.config.EnableWebFlux;
import org.springframework.web.reactive.config.WebFluxConfigurer;
import reactor.core.publisher.DirectProcessor;
import reactor.core.publisher.Flux;
import reactor.core.publisher.FluxProcessor;
@SpringBootApplication
@EnableWebFlux
@RestController
public class EventStreamApp implements WebFluxConfigurer {
public static void main(String[] args) {
SpringApplication.run(EventStreamApp.class);
}
private FluxProcessor<Integer, Integer> processor = DirectProcessor.create();
@PutMapping("/{number}")
public void update(@PathVariable Integer number) {
processor.onNext(number);
}
@GetMapping(produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<Integer> eventFlux() {
return processor;
}
}
GitHub上的完整代码
希望这能有所帮助。
我的课程注册项目应该有很多方法,比如(添加课程),(添加导师),等等(添加学生())就是其中之一,我想知道每次创建对象时如何更改对象的变量(std)我不知道每个对象如何都有相同的变量 那么,我想把变量改为std1、std2之类的任何建议 我想知道这是不是我做错了什么? 如果每个对象都用相同的变量声明,那么它会将每个创建的对象的数据克隆到新创建的对象? 谢谢你。
问题内容: 在Android应用程序中(或者在没有区别的情况下,在Java中更常见),什么时候变量值发生变化的最佳方法是什么? 问题答案: 您真正想要做的是设置事件驱动模型,以在事件发生时触发侦听器(在您的情况下,说变量值已更改)。这不仅对于Java,而且对于其他编程语言也非常普遍,尤其是在UI编程的情况下(尽管不一定如此) 通常,这可以通过执行以下步骤来完成: 确定在事件触发时侦听器应实现的接口
我有一个“移动”模块,它依赖于一个“核心”模块,我不断收到相同的不一致错误: 移动/构建。格拉德尔: 核心/build.gradle: 每当我将我的变体设置为mobiledebug-core-debug时,我仍然会在我的核心中获得相同的输出。我的申请。java文件:'https://core.release':
我正在开发一个。能让它一变就重启吗?我正在Coffeescript中开发它。是否可以监视以便在保存更改时重新启动?
问题内容: 如何轻松检测变量何时更改值?我希望每当指定变量更改值时,程序的执行就在调试器上中断。现在,我正在使用Eclipse的调试器。 问题答案: 对于类或实例变量 右键单击大纲视图中的变量 选择“切换监视点” 然后,在breapkoints视图中,可以右键单击结果条目 选择“断点属性” 取消选择“现场访问”。
请帮助我订阅更改的变量。我做了简单的微调。服务中的微调状态(真|假)存储: 在组件模板中,我通过条件显示微调器: 在组件中,我尝试订阅服务isVisibleSpinner变量中的更改: 但控制台输出遵循错误消息: 类型“boolean”不可分配给类型“Observable”。