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();
}
});
}