@GetMapping("/test")
fun fluxTest(): Flux<Int> {
return Flux.create {em ->
Thread{
(0..10).forEach{
em.next(it)
Thread.sleep(1000)
}
em.complete()
}.run()
}
}
因此,上面的代码是一个Spring MVC控制器方法,以1秒的间隔发出0~10个数字。
这是我的客户代码。
val client = WebClient.builder().baseUrl("http://localhost:8083/api/v1")
.build()
val disposable = client.get()
.uri("/test")
.retrieve()
.bodyToFlux(Int::class.java)
.subscribe ({
System.out.println("Value arrived : $it")
}, {err ->
err.printStackTrace()
})
问题是,客户端程序一次打印出0~10个,而不是以1秒的间隔逐个打印。
所以,它不会逐个打印来自服务器的值,而是在流完成时打印所有接收到的值。
有人能帮我解决这个问题吗?
谢啦
看起来你应该启用服务器发送事件,简单的方法只需将生产者添加到enpoint如下:
@GetMapping(path = "/test", produces=MediaType.TEXT_EVENT_STREAM_VALUE)
我在远程机器上设置了Kafka和动物园管理员。在那台机器上,我可以看到下面使用官方网站上的测试方法工作。 但是当我使用本地消费者脚本时,它就不起作用了: 我试着把它改成: 然后运行客户端使用者脚本,它会给出错误: [2017-08-11 15:49:01,591]获取相关id为3的元数据时警告错误:{listings-incoming=leader_not_available}(org.apach
我是一个使用python进行套接字编程的初学者。我正在做我的课程项目。我的项目的一部分需要用不同的端口发送和接收UDP消息。提供了名为robot的服务器程序,我需要编写名为student的客户端程序,它可以与机器人进行交互。因此,我不能显示服务器程序中的所有源代码。 这是服务器程序中与UDP套接字相关的部分 这是我的客户端程序。s3 是 UDP 套接字。我可以成功地向服务器程序发送消息,但无法从中
问题内容: 我要进行最简单的解释。我的Java TCP项目有一个服务器和三个客户端。 服务器具有一个ClientThread。每个客户端都有一个ServerThread和一个UserThread。 工作流程为: 1.客户端(例如,client_0)的UserThread获取用户输入,然后将消息发送到服务器。 2.服务器的ClientThread捕获来自client_0的消息,并将另一条消息发送到另
问题内容: 我要进行最简单的解释。我的Java TCP项目有一个服务器和三个客户端。 服务器具有一个ClientThread。每个客户端都有一个ServerThread和一个UserThread。 工作流程为: 1.客户端(例如,client_0)的UserThread获取用户输入,然后将消息发送到服务器。 2.服务器的ClientThread捕获来自client_0的消息,并将另一条消息发送到另
我正在尝试连接到我的AWS S3存储桶,以便根据这些链接的说明上传文件。 http://docs.aws.amazon.com/AmazonS3/latest/dev/UploadObjSingleOpJava.html http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/credentials.html#credenti
我刚刚开始学习Java。我修改了服务器/客户端通信程序的客户端代码,为客户端创建了两个线程,一个是用于接收用户输入的主线程,另一个是用于接收服务器响应的inputThread。我确信服务器已经向客户机发送了响应,但是,在客户机上没有获得响应消息。 这是我的代码。有谁能帮我弄明白吗?谢谢