Ако услуга остане безмълвна с минути и прокси изтече по време, изберете какво трябва да получи клиентът, преди да добавите байтове за пулс. Удължаването на таймер може да помогне на едно изчакване; договорът за отговор определя кой напредък е валиден.

Дизайн на приложениетоДоговор за напредък
Асинхронна задача202 Accepted с представяне, описващо наблюдението, последвано от ограничени заявки за статус и явни състояния на завършване/неуспех
Поток Server-Sent EventsContent-Type: text/event-stream и записи, които SSE клиентът разбира

202 не обещава, че задачата ще успее. За SSE записът за коментар може да изглежда така:

: heartbeat

Двоеточието го прави коментар, а не събитие на приложението. Бележките на HTML за авторство предлагат периодични коментари приблизително на всеки 15 секунди срещу някои стари поведения на бездействие на прокси; това е указание, а не универсална гаранция за изтичане.

Завършете заглавките и се уверете, че приложението/стекът за обслужване освобождава записите, вместо да ги буферира локално. Все още неизпратените байтове не могат да поддържат долен посредник активен.

Не вмъквайте SSE коментари в обикновено JSON или двоично съдържание. HTTP/1.1 блок с нулева дължина завършва chunked тяло, така че не е повторяем празен пулс.

Запазете краен срок за операцията и политика за отказ. Само активността на трафика не показва полезен напредък на задачата или валиден краен резултат.

Подобни статии