public WebsocketSyncDataService()

in shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/WebsocketSyncDataService.java [94:140]


    public WebsocketSyncDataService(final WebsocketConfig websocketConfig,
                                    final ShenyuConfig shenyuConfig,
                                    final PluginDataSubscriber pluginDataSubscriber,
                                    final List<MetaDataSubscriber> metaDataSubscribers,
                                    final List<AuthDataSubscriber> authDataSubscribers,
                                    final List<ProxySelectorDataSubscriber> proxySelectorDataSubscribers,
                                    final List<DiscoveryUpstreamDataSubscriber> discoveryUpstreamDataSubscribers
    ) {
        this.timer = WheelTimerFactory.getSharedTimer();
        this.websocketConfig = websocketConfig;
        this.pluginDataSubscriber = pluginDataSubscriber;
        this.metaDataSubscribers = metaDataSubscribers;
        this.authDataSubscribers = authDataSubscribers;
        this.proxySelectorDataSubscribers = proxySelectorDataSubscribers;
        this.discoveryUpstreamDataSubscribers = discoveryUpstreamDataSubscribers;
        this.namespaceId = shenyuConfig.getNamespace();
        LOG.info("start init connecting...");
        List<String> urls = websocketConfig.getUrls();
        for (String url : urls) {
            if (StringUtils.isNotEmpty(websocketConfig.getAllowOrigin())) {
                Map<String, String> headers = ImmutableMap.of(ORIGIN_HEADER_NAME, websocketConfig.getAllowOrigin());
                clients.add(new ShenyuWebsocketClient(URI.create(url),
                        headers,
                        Objects.requireNonNull(pluginDataSubscriber),
                        metaDataSubscribers,
                        authDataSubscribers,
                        proxySelectorDataSubscribers,
                        discoveryUpstreamDataSubscribers,
                        namespaceId));
            } else {
                clients.add(new ShenyuWebsocketClient(URI.create(url),
                        Objects.requireNonNull(pluginDataSubscriber),
                        metaDataSubscribers,
                        authDataSubscribers,
                        proxySelectorDataSubscribers,
                        discoveryUpstreamDataSubscribers,
                        namespaceId));
            }
        }
        LOG.info("start check task...");
        this.timer.add(timerTask = new AbstractRoundTask(null, TimeUnit.SECONDS.toMillis(60)) {
            @Override
            public void doRun(final String key, final TimerTask timerTask) {
                masterCheck();
            }
        });
    }