Spring boot stomp websocket, сервер websocket не принимает новые соединения, если происходит внезапное отключение клиента / ов - PullRequest
0 голосов
/ 29 марта 2019

Я столкнулся со странной проблемой с моим сервером сетевой загрузки sockjs Spring boot stomp. Это простой сервер с конечной точкой, зарегистрированной для sockjs. Stomp настроен на простого брокера. Ниже приведен код

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
    registry.addEndpoint("/ws").setAllowedOrigins("*").withSockJS();
}

@Override
public void configureMessageBroker(MessageBrokerRegistry configurer) {
    configurer.setApplicationDestinationPrefixes("/app")
            .enableSimpleBroker("/topic", "/queue");
}

Клиент - это веб-интерфейс реагирующих, который использует websocket-stomp в качестве клиентской библиотеки lib для подключения к серверу и подписывается на "/ topic / ws" при успешном подключении. Это прекрасно работает, так как это очень стандартная и простая реализация. Но когда клиент или группа клиентов внезапно отключаются, например, если случайно подключен сетевой кабель или произошел сбой питания, сервер не принимает никаких новых подключений даже от других клиентов, где сеть в порядке и нет отключения питания. Это происходит только после внезапного отключения клиента / с.

Это периодически возникающая проблема, которая не всегда бывает. Но учитывая некоторый набор условий, это происходит последовательно, условия очень специфичны для приложения, использующего сервер, поэтому здесь не очень актуально.

Как только это происходит, сервер не принимает никаких новых клиентов / подключений или даже повторных подключений от тех же клиентов, которые были внезапно отключены. На данный момент только разрешение, кажется, перезапускает сервер, что явно неприемлемо. Если кто-то сталкивался с такой же проблемой с веб-сокетом Spring stomp поверх sockjs, пролите некоторый свет на то, что происходит под ним и почему новые подключения не принимаются. Похоже, один плохой клиент может отключить весь сервер для любых новых подключений и связи. Я считаю, что это не так уж и плохо, может быть, мне не хватает какой-то конфигурации (возможно, бьется сердце и чистое соединение закрыто?).

Любая помощь будет принята с благодарностью.

...