Spring Webflux监控客户端连接断开的方法

Spring webflux的FluxSink有两个方法:onCancel和onDispose。当客户端的连接断开,这两个方法会被调用。

示例代码:

@RestController
public class Controller {
@GetMapping("/")
public Flux<String> test() {
return Flux.create(this::process);
}
private void process(final FluxSink<String> sink) {
sink.onRequest(i -> {
for (int j = 0; j < i; j++) {
sink.next("Hello world" + j);
}
});
sink.onCancel(() -> System.out.println("Flux Canceled"));
sink.onDispose(() -> System.out.println("Flux dispose"));
}
}


版权声明:著作权归作者所有。

相关推荐

Paramiko Python远程连接工具

Paramiko是一个Python的远程操作库,可以进行SSH, SFTP等远程连接操作. 来学习学习怎么使用吧python3 -m pip install paramiko 开始使用 导入paramikoimport paramiko 初始化SSHClientclient = paramiko.SSHClient()client.set_missing_host_key_policy(par

Spring MVC获取请求header的方法

在Spring MVC有两种方法可以用来获取请求头Header的值。方法一、通过在方法的参数添加注解@RequestHeader示例如下:@Controllerpublic class RequestHeaderDemoController { @Autowired private HttpServletRequest request; @GetMapping("/prin

PHP获取请求客户端IP的函数

<?php //使用$_SERVER数组 function get_client_ip_1() { $ipaddress = ''; if (isset($_SERVER['HTTP_CLIENT_IP'])) $ipaddress = $_SERVER['HTTP_CLIENT_IP']; else if(isset($_SERVER['

Linux shell命令监控文件的变化

1、tail:监控文件的实时更新tail -f logfile.log 2、watch:定时执行命令并输出命令内容,对于有改变的输出会以高亮的方式显示watch -n 10 -d ls -l /var/ -n:设置每隔多少秒执行指定的命令-d:设置执行的命令示例里是每10秒执行ls命令。