zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【基础】jquery全选、反选、全不选代码
    【基础】jquery全选、反选、全不选代码
    收集一些程序员励志经典名言
    收集一些程序员励志经典名言
    收集一些程序员励志经典名言
    防止表单重复提交的解决方案整理
    Git使用教程
    2019牛客暑期多校训练营(第二场)J Subarray
    Hibernate-配置
    与项目欧拉速度比较:C vs Python与Erlang vs Haskell
  • 原文地址:https://www.cnblogs.com/zhendiao/p/14305957.html
Copyright © 2011-2022 走看看