Тайм-аут запроса EventSource - PullRequest
       8

Тайм-аут запроса EventSource

0 голосов
/ 27 февраля 2019

У меня проблема с javascript EventSource в jhipster.Я использовал EventSource с весенним загрузочным webflux в обычном приложении весенней загрузки.В этом проекте, когда пользователь подписывается на /chat/subscribe, соединение остается открытым в течение длительного времени бездействия (я тестировал в течение 30 минут).Я не использую конфигурацию в моем приложении для весенней загрузки.Но когда я использую EventSource в приложении jhipster, соединение закрывается ровно через 2 минуты бездействия.Я не знаю, где Jhipster установил конфигурацию для этого.Вот мой код:

Контроллер:

@Controller
@RequestMapping("/api")
public class ChatResource {

    @Autowired
    @Qualifier("ptpReplayProcessor")
    private ReplayProcessor<String> ptpReplayProcessor;

    @GetMapping(value = "/chat/subscribe", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
    @ResponseBody
    public Flux<String> subscribe() {
        return Flux.from(ptpReplayProcessor);
    }

}

ReplayProcessorConfig:

@Configuration
public class ReplayProcessorConfig {

    @Bean("ptpReplayProcessor")
    ReplayProcessor<String> ptpReplayProcessor() {
        ReplayProcessor<String> replayProcessor = ReplayProcessor.create(0, false);
        replayProcessor.subscribe(new BaseSubscriber<String>() {
            @Override
            protected void hookOnNext(String ptp) {
                System.out.println("ptp replay processor called!");
            }

        });
        return replayProcessor;
    }
}

Клиентская часть (часть моего компонента):

    ....
    this.source = new EventSource('http://localhost:9000/api/chat/subscribe');
    this.source.onmessage = event => {
        console.log(event);
    };
    this.source.onerror = event => {
        console.log('error');
    };

Пока сообщения отправляются и ptpReplayProcessor.onNext(message) вызывается, браузер регистрирует сообщения и все правильно.Но если я не отправлю сообщение в течение 2 минут, консоль браузера покажет error !.Я хочу знать, почему эта проблема существует только в jhipster, а не в обычном весеннем загрузочном приложении!Спасибо за внимание.

...