Мазмунга өтүү

Server-Sent Events (SSE) менен реалдуу убакытта жаңылоолор

Сабактын башталышы

Server-Sent Events (SSE) менен реалдуу убакытта жаңылоолор

Кадимки HTTP аркылуу жандуу маалымат үчүн жеңил бир тараптуу канал

Негизги идея: Server-Sent Events (SSE) серверге бир узак жашаган HTTP-жоопто клиентке жаңылоолордун үзгүлтүксүз агымын жиберүүгө мүмкүнчүлүк берет. Жаңы протокол да, апгрейд кол алышуусу да жок: бул кадимки HTTP, анын денеси text/event-stream түрүндө болуп, жөн эле эч качан бүтпөйт. Дашборддор, билдирүүлөр, баа тикерлери жана прогресс индикаторлору үчүн -- маалымат сервер -> клиент багытында агып, тескерисинче сейрек болгон жерде -- SSE көбүнчө толук WebSocket'ко караганда жөнөкөй жана ишенимдүү. WebSocket менен сиз бул курста тааныштыңыз; бул сабак сизге көптөгөн бир тараптуу учурлар үчүн жеңилирээк куралды берет.
Сабактын аягында сиз төмөнкүлөрдү жасай аласыз:
  • SSE окуяларды бир keep-alive HTTP-жооп аркылуу кантип агызарын түшүндүрүү;
  • text/event-stream форматын жазуу -- id, event, data, retry талаалары жана комментарийлер;
  • агымды браузерде EventSource жана аталган окуялар менен кабыл алуу;
  • үзгүлтүксүз улантуу үчүн автоматтык кайра туташууну жана Last-Event-ID колдонуу;
  • байланышты heartbeat менен жандуу кармап, прокси буферлешин жеңүү;
  • SSE качан туура курал, WebSockets качан туура экенин чынчыл чечүү.

1. SSE деген эмне жана эмне үчүн керек

Серверден жаңы маалымат алуунун классикалык жолу -- бул сурамжылоо (polling): клиент бир нече секунд сайын "жаңы нерсе барбы?" деп сурайт. Сурамжылоо эч нерсе өзгөрбөгөндө сурамдарды текке кетирет жана өзгөрүү болгондо да кечигүү кошот. SSE муну тескери айлантат. Клиент байланышты бир жолу ачат, ал эми сервер ошол жоопту ачык кармап, жаңы окуялар пайда болгон сайын аларды ага жазат. Браузер муну EventSource деген кичинекей орнотулган API аркылуу берет.

Транспорт кадимки HTTP болгондуктан, SSE HTTP берген нерселердин баарын мурас кылат: ал сиздин веб-тиркемеңиз менен бир эле портто иштейт, кадимки веб-трафикке уруксат берген файрволдор жана прокси аркылуу өтөт, ошондой эле TLS жана cookie менен оңой корголот. Инфраструктурада өзүнчө протокол ачуунун кереги жок.

Салыштыруу. Сурамжылоо -- бул поездиңиз кечигип жатабы деп вокзалга ар мүнөт сайын чалганга окшош. SSE -- бул радиоуктуруу: сиз бир жолу тууралайсыз, ал эми жарыялар окуялар болгон сайын келет. Радиодон сиз жооп бербейсиз -- жана каттам үчүн бул керек эмес. Дал ушул бир тараптуу формага SSE курулган.

SSE -- бул браузердин стандарты (HTML'дин бир бөлүгү), андыктан клиент тарабын ойлоп табуунун кереги жок: кайра туташуу, окуяларды талдоо жана Last-Event-ID иштетүү сиз үчүн EventSource тарабынан жасалат. Серверде сиздин милдетиңиз -- жөнөкөй форматта туура сүйлөө гана.

Бул сабакты YourAIZone платформасында улантыңыз

Толук сабакта — толук түшүндүрмө, чыгарылган мисалдар, көп кездешкен каталар, заматта текшерилүүчү тесттер жана ЖИ-репетитор. Конок катары дароо баштаңыз же прогрессти сактоо үчүн аккаунт түзүңүз.

Толук сабакта

  • Толук түшүндүрмө
  • Чыгарылган мисалдар
  • Көп кездешкен каталар жана алардан кантип качуу керек
  • Тест суроолору: 15
  • Тема боюнча суроолорго жооп берген ЖИ-репетитор
  • Окуучу, ата-эне жана мугалим үчүн прогрессти көзөмөлдөө