@Override
        public void run() {
            try {
                BlockingQueue<LongPollingClient> namespaceClients = clientsMap.getOrDefault(namespaceId, new ArrayBlockingQueue<>(1024));
                this.asyncTimeoutFuture = scheduler.schedule(() -> {
                    namespaceClients.remove(LongPollingClient.this);
                    List<ConfigGroupEnum> changedGroups = compareChangedGroup((HttpServletRequest) asyncContext.getRequest());
                    sendResponse(changedGroups);
                    log.debug("LongPollingClient {} ", GsonUtils.getInstance().toJson(changedGroups));
                }, timeoutTime, TimeUnit.MILLISECONDS);
                namespaceClients.add(this);
                clientsMap.put(namespaceId, namespaceClients);
            } catch (Exception ex) {
                log.error("add long polling client error", ex);
            }
        }
Instantiates a new Long polling client.

@param ac          the ac
@param ip          the ip
@param timeoutTime the timeout time
shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/http/HttpLongPollingDataChangedListener.java