Sobes.tech
Middle+

Ինչու են HTML5-ում ներկայացվել server-sent իրադարձությունները:

sobes.tech AI

Պատասխան AI-ից

Միակ ուղղությամբ կապի ալիքի իրականացման համար, որը թույլ է տալիս սերվերին ուղարկել տվյալներ հաճախորդին ցանկացած ժամանակ կապի հաստատումից հետո:

Հիմնական առանձնահատկություններ և առավելություններ՝

  • արդյունավետություն՝ օգտագործվում է սովորական HTTP-կապ, որը նվազեցնում է ծախսերը polling-ի համեմատ
  • պարզություն՝ server-sent events (SSE) API-ն ավելի հեշտ է օգտագործել, քան WebSockets-ը միակ ուղղությամբ կապի համար
  • ավտոմատ վերակապում՝ բրաուզերը ավտոմատ փորձում է վերակապվել կապի կտրումից հետո
  • տվյալների տեսակների աջակցում՝ աջակցում է տեքստային տվյալների ուղարկմանը text/event-stream ձևաչափով
  • բրաուզերների աջակցում՝ լայնորեն աջակցվում է ժամանակակից բրաուզերներով

Կիրառում՝

  • նորությունների հոսքերի իրական ժամանակի թարմացում
  • իրադարձությունների ծանուցումներ (օրինակ՝ նոր հաղորդագրություններ)
  • տվյալների մոնիտորինգ իրական ժամանակում (օրինակ՝ բորսայական գներ)
  • երկարաժամկետ առաջադրանքների առաջընթացի ցուցադրում

Սա ավանդական polling-ի այլընտրանք է, երբ հաճախորդը ժամանակ առ ժամանակ հարցում է կատարում սերվերին նորությունների մասին։ WebSockets-ից տարբերությամբ, SSE-ն միակ ուղղությամբ է, ինչը հեշտացնում է այն կիրառումը, երբ տվյալները փոխանցվում են միայն սերվերից հաճախորդին։

Կլիենտի կողմում (JavaScript) օրինակ՝

const eventSource = new EventSource('/events'); // URL՝ սերվերից իրադարձություններ ստանալու համար

eventSource.onmessage = function(event) {
  // ստացված տվյալների մշակումը
  console.log('Ստացված հաղորդագրություն:', event.data);
};

eventSource.onerror = function(error) {
  // կապի սխալների մշակումը
  console.error('Server-Sent Events սխալ:', error);
};

eventSource.addEventListener('customEvent', function(event) {
  // 'customEvent' տեսակի հատուկ իրադարձության մշակումը
  console.log('Ստացված հատուկ իրադարձություն:', event.data);
});

Սերվերի կողմից տվյալների ձևաչափի օրինակ՝

event: customEvent
data: {"message": "Բարև!"}

data: Պարզ հաղորդագրության տեքստ

id: 123 // Իրադարձության նույնականացուցիչ, օգտագործվում է ավտոմատ վերակապման համար

retry: 5000 // Վերակապման հաջորդ փորձի ուշացում միլիվայրկյաններով