• Soul网关websocket同步数据


    websocket同步数据

    初始化属性部分

    首先启动soul-admin项目,然后启动soul-boostrap项目,可以明显发现websocket连接成功
    file
    奇怪的是,使用昨天测试SpringCloud的数据库发现webosocket无法连接成功。后续可以继续尝试下这种问题发生的原因

    分析pom文件的依赖可知。由于soul-boostrap是springboot项目,所以websocket相关的配置是从soul-spring-boot-starter-sync-data-websocket加载
    file
    这个例子中涉及到starter相关的知识不做解读了。在这个configration中通过注入bean注入了websocket的配置以及几个空的订阅器包括插件订阅器pluginSubscriber,元数据订阅器metaSubscribers和认证订阅器authSubscribers用来监听admin项目的数据的改变。
    此处的websocketConfig属性由配置文件注入。其他属性特别是pluginSubscriber数据的ObjectProvider是Spring4.3之后的一个新特性。简单来说就是可以代替@Autowired的作用。具体的示例,可以参考https://www.cnblogs.com/fightingting/p/14300409.html 和 https://www.cnblogs.com/fengxueyi/p/13888562.html

    数据准备和连接部分

    file
    从代码可以看到。对于websocket这一块。做好了多个websocket的连接的做法。随后阻塞的连接每个客户端。然后利用线程池每隔30秒检测是否关闭。关闭的话回去尝试重连接。如果不能重新连接会抛出错误

    发送消息部分

    关于websocket发送消息的部分,我之前使用spring-websocket做过一个类似的案例https://zhaozhen.blog.csdn.net/article/details/80356392 。其实主要就是利用onMessage来传递数据。即在修改时由admin发送数据。随后网关部分做相应操作
    file
    接下来有了这样的问题。接收到了数据之后WebsocketDataHandler的executor并没有实现什么实际的操作,这个需要后续在组件操作时继续研究

    问题

    • 在保存有其他同步机制的情况下,websocket的通信问题
    • 数据变化时WebsocketDataHandler的executor会做什么样的操作

    欢迎搜索关注本人与朋友共同开发的微信面经小程序【大厂面试助手】和公众号【微瞰技术】,以及总结的分类面试题https://github.com/zhendiao/JavaInterview

    file
    file

  • 相关阅读:
    DRF (Django REST framework) 框架介绍(2)
    DRF (Django REST framework) 框架介绍(1)
    Django中的Admin站点
    Django中的模板和表单
    Django数据库
    跨站请求伪造CSRF以及Flask中的解决办法
    Flask中的模板,Jinjia2介绍
    Flask中的上下文和flask-script扩展
    化学品撮合交易系统
    化学品产品查询系统解决方案
  • 原文地址:https://www.cnblogs.com/zhendiao/p/14305957.html
Copyright © 2020-2023  润新知