𝗨𝗻𝗱𝗲𝗿𝘀𝘁𝗮𝗻𝗱𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗲𝗿 𝗦𝗲𝗻𝘁 𝗘𝘃𝗲𝗻𝘁𝘀

કલ્પના કરો કે તમે ChatGPT નો ઉપયોગ કરો છો. તમે એક પ્રશ્ન પૂછો છો. શબ્દો એક પછી એક દેખાવાને બદલે, તમે આખું જવાબ એકસાથે દેખાય તે માટે 5 સેકન્ડ રાહ જુઓ છો.

આ વિલંબ ધીમો લાગે છે. તે હતાશાજનક લાગે છે.

આને સુધારવા માટે, ડેવલપર્સ સ્ટ્રીમિંગ રિસ્પોન્સિસ (streaming responses) નો ઉપયોગ કરે છે. આનાથી અનુભવ ઝડપી લાગે છે.

Server Sent Events (SSE) આને શક્ય બનાવે છે.

SSE શું છે? SSE એ HTTP દ્વારા સર્વરથી ક્લાયન્ટ સુધી ડેટા સ્ટ્રીમ કરવા માટેનું એક સ્ટાન્ડર્ડ છે. તે સર્વરને તમને રીઅલ-ટાઇમમાં અપડેટ્સ મોકલવાની (push કરવાની) મંજૂરી આપે છે.

તે કેવી રીતે કામ કરે છે: સર્વર નાના ટેક્સ્ટ બ્લોક્સ મોકલે છે. આ બ્લોક્સ data, event, id, અને retry જેવા ફીલ્ડ્સનો ઉપયોગ કરે છે. દરેક બ્લોક એક ખાલી લાઇન દ્વારા અલગ પડે છે.

ઉદાહરણ: data: {"name": "Portal Gun", "price": 999.99}

SSE ના સામાન્ય ઉપયોગો:

  • AI ચેટ સ્ટ્રીમિંગ
  • લાઇવ નોટિફિકેશન્સ
  • રીઅલ-ટાઇમ લોગ્સ
  • સિસ્ટમ ઓબ્ઝર્વેબિલિટી (System observability)

SSE પહેલાં, ડેવલપર્સ અપડેટ્સ મેળવવા માટે મુખ્ય બે પદ્ધતિઓનો ઉપયોગ કરતા હતા:

  1. Short polling ક્લાયન્ટ સર્વર પાસે ડેટા માંગે છે. જો ડેટા તૈયાર ન હોય, તો સર્વર 'વેઇટ મેસેજ' મોકલે છે. ક્લાયન્ટ રાહ જુએ છે અને ફરીથી પૂછે છે. જ્યાં સુધી કામ પૂરું ન થાય ત્યાં સુધી આ પ્રક્રિયાનું પુનરાવર્તન થાય છે.

  2. Long polling ક્લાયન્ટ સર્વર પાસે ડેટા માંગે છે. જ્યાં સુધી ડેટા તૈયાર ન થાય અથવા ટાઈમઆઉટ (timeout) ન થાય ત્યાં સુધી સર્વર રિક્વેસ્ટને ખુલ્લી રાખે છે. રિસ્પોન્સ મળ્યા પછી ક્લાયન્ટે તરત જ રિક્વેસ્ટ ફરીથી શરૂ કરવી પડે છે.

ઇવેન્ટ સ્ટ્રીમ્સ સતત ચાલતી પ્રક્રિયાઓને હેન્ડલ કરે છે. આ પ્રક્રિયાઓ એક ચોક્કસ ક્રમનું પાલન કરે છે. આમાં PDF બનાવવા જેવા સરળ કાર્યો અથવા બેંક ટ્રાન્ઝેક્શન જેવા જટિલ કાર્યોનો સમાવેશ થાય છે.

સર્વર ક્લાયન્ટ સાથે કમ્યુનિકેશન ચેનલ ખોલે છે. જ્યાં સુધી પ્રક્રિયા પૂર્ણ ન થાય ત્યાં સુધી તે આ ચેનલ ખુલ્લી રાખે છે.

સ્ત્રોત: https://dev.to/rishini_dharan_t/understanding-server-sent-events-3mkd