初探Sou网关week03_03

196 阅读1分钟

前言

昨天的文章写到 admin(server端) 的 WebsocketCollector 发送了websocket请求,那今天就是bootstrap (client端)的处理情况

数据同步方式,bootstrap(client端)

图:bootstrap 处理websocket的整体流程

  • 引入对应的starter 图:bootstrap引入starter:soul-spring-boot-starter-sync-data-websocket

  • 初始化 图;starter 中的配置类 WebsocketSyncDataConfiguration

spring.factories 是starter 用来实现引入外部Bean的配置文件,与@configuration + @Bean 作用一致

先启动admin --> 后启动bootstrap

启动bootstrap后会自动建立websocket连接,如果只启动admin的话,会报错 图:连接失败报错信息

图:WebsocketSyncDataConfiguration返回WebsocketSyncDataService

图:WebsocketSyncDataService 初始化时获取所有注册为 Bean 的 WebsocketConfig 以及各种 DataSubscriber 订阅器, 构建实现了 WebsocketClient 的 SoulWebsocketClient 的成员变量: clients

图:初始化成功

  • 同步数据 admin 操作页面上修改dubbo插件状态 图:数据最终到达了监听websocket的消息的 SoulWebsocketClient

图:最终调用 AbstractDataHandler.handle()

图:订阅者处理消息

图:更新缓存