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

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

WebSockets менен реалдуу убакыт

Өзгөрүүлөрдү сурап туруунун ордуна сервер менен клиенттин ортосунда ачык эки тараптуу каналды кармаңыз.

Негизги идея: Кадимки HTTP суроо/жооп принциби менен иштейт: клиент сурайт, сервер жооп берет, туташуу жабылат. Мындай модель серверге биринчи болуп сүйлөөгө мүмкүндүк бербейт. WebSocket бир HTTP туташуусун туруктуу толук дуплекстик каналга айландырат, ал ачык бойдон калат, ошондуктан эки тараптын каалаганы айта турган нерсеси болгон замат билдирүү жөнөтө алат -- бул чаттардын, тирүү дашбоарддордун, көп оюнчулуу оюндардын жана биргелешкен редакторлордун пайдубалы.
Аягында сиз төмөнкүлөрдү жасай аласыз:
  • WebSocket’тин upgrade кол алышуусун жана анын сурап туруудан айырмасын түшүндүрө;
  • ws менен төмөнкү деңгээлдеги серверди жана Socket.IO менен «баары камтылган» серверди кура;
  • жаңылоолорду жөнөтө, бөлмөлөрдү колдоно жана бир эле учурда көп клиентке кеңири таратуу (broadcast) жасай;
  • туташууларды heartbeat менен тирүү кармай жана үзүлүүлөрдөн кайра туташуу аркылуу калыбына келе;
  • чыныгы алмашууларды баалай: чийки протокол фреймворкко каршы жана процесстер боюнча масштабдоо.

1. Суроо/жооптон тирүү туташууга

Сиз REST’ти буга чейин билесиз: клиент суроо жөнөтөт, сервер жооп жөнөтөт, бүттү. Жаңы маалымат жөнүндө билиш үчүн клиент кайра сурашы керек. Эң эски ыкма -- сурап туруу (polling): ар бир нече секунд сайын GET /messages дегенди чакыруу. Бул иштейт, бирок эч нерсе өзгөрбөгөндө суроолорду текке кетирет жана кечигүү кошот (жаңы билдирүү кийинки сурап туруунун чейин күтөт). Узак сурап туруу (long-polling) муну жакшыртат: маалымат пайда болмоюнча суроону ачык кармайт, бирок бул дагы деле бир окуяга бир жооп жана дайыма кайра туташуу.

WebSocket көйгөйдүн тамырын чечет. Клиент Upgrade: websocket аталышы менен кадимки HTTP суроосун ачат; сервер 101 Switching Protocols жообу менен макул болот; ушул учурдан тартып ошол эле TCP туташуусу кадрлардын (frames) эки багыттуу агымына айланат. Ар бир билдирүүгө жаңы кол алышуу жок, жана сервер каалаган учурда маалымат жөнөтө алат.

HTTP сурап туруу Клиент Сервер GET /messages (бош) чексиз кайталоо WebSocket Клиент Сервер Upgrade: websocket 101 Switching кадрлар, эки тарапка
Сурап туруу ар бир текшерүүгө суроону кайра ачат; WebSocket бир жолу кол алышат да, андан кийин кадрлар бир ачык туташуу боюнча эки тарапка агат.

Салыштыруу. Сурап туруу -- бул дүкөнгө ар мүнөт сайын чалып «жаңылык барбы?» деп сураганга окшош. WebSocket -- бул линияны ачык калтыруу: жаңылык пайда болор замат, экөөңүздүн бириңиз жөн эле сүйлөйсүз -- кайра чалуусуз.

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

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

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

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