Springboot整合Websocket遇到的坑

Springboot整合Websocket遇到的坑,第1张

如果客户端关闭了websocket,但服务端没有监听到关闭事件,即onClose方法没有调用,这是会发生的情况

此时如果服务端向客户端推送消息,会出现异常告诉开发者:关闭了一个连接,并重新调用onClose方法

需要环境:

eurekaServer application配置:

还需要在EurekaServerApplication中添加 @EnableEurekaServer 注解

其他客户端 application配置:

还需要在WebServerApplication中添加 @EnableDiscoveryClient 注解

adminServer application配置:

还需要在AdminServerApplication中添加 @EnableDiscoveryClient 和 @EnableAdminServer 注解
还需要新建两个类,一个WebServerNotifierConfiguration用于创建配置项、一个WebServerNotifier用于集成AbstractStatusChangeNotifier,重写通知方法。

注意 :在本地测试过程中,其他服务的down和up状态都会被WebServerNotifier 监控到,但是部署到服务上后就只有 down的推送,获取不到up了,查看本地和服务器上的事件日志,发现服务器上的事件日志比本地的多两个状态:

通过比对上图发现,在服务器环境下,在服务down之后会自动进行注销,之后再重新注册,查找文档发现:

所以,如果在服务环境下想要监听服务上线事件,可以重写shouldNotify方法,可以了修改 springbootadminclientauto-deregistration 配置


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10872969.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存