2016-04-27 3 views
0

краткое объяснение того, что у меня есть.jetty http/2 держать push-поток открытым

  1. У меня есть сервер и клиент
  2. Клиент делает GET Request
  3. Поток из GET запроса используется как Push-поток
  4. Сервер толкает сообщения на клиенте с помощью этого потока в одном потоке

Проблема заключается в том, что, когда я не отправляю данные за 30 секунд, Клиент, кажется, автоматически закрывает поток.

Я уже установил Timout от 30 сек до LONG.MAX_VALUE с:

stream.setIdleTimeout(Long.MAX_VALUE); 

Сейчас я реализованным в «Heartbeat-Обход», который выталкивает простую строку каждый 20сек так я уклоняющийся тайм-аут.

Я просто хочу знать, если это единственный способ сделать это. Или, если мне нужно изменить некоторые настройки, я не нашел.

Благодарим за каждый ответ.

С уважением!

ответ

1

Кажется, вы выполняете обратный HTTP-опрос, который требует «сердечного ритма», чтобы избежать того, что потоки или соединения закрываются таймаутом простоя.

Обычно лучше выполнять обычный длительный опрос HTTP (т. Е. Клиент отправляет сердечный ритм), поскольку он позволяет серверу быстрее обнаруживать отключенные клиенты.

Однако вам лучше использовать такие решения, как CometD, если вы хотите выполнить обмен сообщениями на сервере.