𝗦𝗲𝗿𝘃𝗲𝗿 𝗦𝗲𝗻𝘁 𝗘𝘃𝗲𝗻𝘁𝘀 ਨੂੰ ਸਮਝਣਾ
ਕਲਪਨਾ ਕਰੋ ਕਿ ਤੁਸੀਂ ChatGPT ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ। ਤੁਸੀਂ ਇੱਕ ਸਵਾਲ ਪੁੱਛਦੇ ਹੋ। ਸ਼ਬਦਾਂ ਨੂੰ ਇੱਕ-ਇੱਕ ਕਰਕੇ ਆਉਂਦੇ ਦੇਖਣ ਦੀ ਬਜਾਏ, ਤੁਸੀਂ ਪੂਰੇ ਜਵਾਬ ਦੇ ਇੱਕੋ ਵਾਰ ਆਉਣ ਲਈ 5 ਸੈਕਿੰਡ ਤੱਕ ਉਡੀਕ ਕਰਦੇ ਹੋ।
ਇਹ ਦੇਰੀ ਸੁਸਤ ਲੱਗਦੀ ਹੈ। ਇਹ ਨਿਰਾਸ਼ਾਜਨਕ ਮਹਿਸੂਸ ਹੁੰਦੀ ਹੈ।
ਇਸ ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ, ਡਿਵੈਲਪਰ 'ਸਟ੍ਰੀਮਿੰਗ ਰਿਸਪਾਂਸ' (streaming responses) ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। ਇਹ ਅਨੁਭਵ ਨੂੰ ਤੇਜ਼ ਬਣਾਉਂਦਾ ਹੈ।
Server Sent Events (SSE) ਇਸ ਨੂੰ ਸੰਭਵ ਬਣਾਉਂਦੇ ਹਨ।
SSE ਕੀ ਹੈ? SSE ਇੱਕ HTTP ਰਾਹੀਂ ਸਰਵਰ ਤੋਂ ਕਲਾਇੰਟ ਤੱਕ ਡੇਟਾ ਸਟ੍ਰੀਮ ਕਰਨ ਲਈ ਇੱਕ ਮਿਆਰਡ (standard) ਹੈ। ਇਹ ਸਰਵਰ ਨੂੰ ਤੁਹਾਨੂੰ ਰੀਅਲ-ਟਾਈਮ ਵਿੱਚ ਅਪਡੇਟਸ ਭੇਜਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।
ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ: ਸਰਵਰ ਛੋਟੇ ਟੈਕਸਟ ਬਲਾਕ ਭੇਜਦਾ ਹੈ। ਇਹ ਬਲਾਕ data, event, id, ਅਤੇ retry ਵਰਗੇ ਫੀਲਡਸ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। ਹਰੇਕ ਬਲਾਕ ਇੱਕ ਖਾਲੀ ਲਾਈਨ ਦੁਆਰਾ ਵੱਖ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
ਉਦਾਹਰਨ: data: {"name": "Portal Gun", "price": 999.99}
SSE ਦੇ ਆਮ ਉਪਯੋਗ:
- AI ਚੈਟ ਸਟ੍ਰੀਮਿੰਗ
- ਲਾਈਵ ਨੋਟੀਫਿਕੇਸ਼ਨ
- ਰੀਅਲ-ਟਾਈਮ ਲੌਗਸ
- ਸਿਸਟਮ ਆਬਜ਼ਰਵੇਬਿਲਟੀ (System observability)
SSE ਤੋਂ ਪਹਿਲਾਂ, ਡਿਵੈਲਪਰ ਅਪਡੇਟਸ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਦੋ ਮੁੱਖ ਤਰੀਕਿਆਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਨ:
Short polling ਕਲਾਇੰਟ ਸਰਵਰ ਤੋਂ ਡੇਟਾ ਮੰਗਦਾ ਹੈ। ਜੇਕਰ ਡੇਟਾ ਤਿਆਰ ਨਹੀਂ ਹੈ, ਤਾਂ ਸਰਵਰ ਇੱਕ 'ਵੇਟ' (wait) ਮੈਸੇਜ ਭੇਜਦਾ ਹੈ। ਕਲਾਇੰਟ ਉਡੀਕ ਕਰਦਾ ਹੈ ਅਤੇ ਦੁਬਾਰਾ ਪੁੱਛਦਾ ਹੈ। ਇਹ ਉਦੋਂ ਤੱਕ ਦੁਹਰਾਇਆ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਤੱਕ ਕੰਮ ਪੂਰਾ ਨਹੀਂ ਹੋ ਜਾਂਦਾ।
Long polling ਕਲਾਇੰਟ ਸਰਵਰ ਤੋਂ ਡੇਟਾ ਮੰਗਦਾ ਹੈ। ਸਰਵਰ ਰਿਕਵੈਸਟ ਨੂੰ ਉਦੋਂ ਤੱਕ ਖੁੱਲ੍ਹਾ ਰੱਖਦਾ ਹੈ ਜਦੋਂ ਤੱਕ ਡੇਟਾ ਤਿਆਰ ਨਹੀਂ ਹੋ ਜਾਂਦਾ ਜਾਂ ਟਾਈਮ-ਆਊਟ (timeout) ਨਹੀਂ ਹੋ ਜਾਂਦਾ। ਕਲਾਇੰਟ ਨੂੰ ਜਵਾਬ ਮਿਲਣ ਤੋਂ ਤੁਰੰਤ ਬਾਅਦ ਰਿਕਵੈਸਟ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਕਰਨੀ ਪੈਂਦੀ ਹੈ।
ਈਵੈਂਟ ਸਟ੍ਰੀਮਸ (Event streams) ਲਗਾਤਾਰ ਚੱਲਣ ਵਾਲੀਆਂ ਪ੍ਰਕਿਰਿਆਵਾਂ ਨੂੰ ਸੰਭਾਲਦੇ ਹਨ। ਇਹ ਪ੍ਰਕਿਰਿਆਵਾਂ ਇੱਕ ਖਾਸ ਕ੍ਰਮ ਦੀ ਪਾਲਣਾ ਕਰਦੀਆਂ ਹਨ। ਇਸ ਵਿੱਚ PDF ਬਣਾਉਣ ਵਰਗੇ ਸਧਾਰਨ ਕੰਮ ਜਾਂ ਬੈਂਕ ਟ੍ਰਾਂਜੈਕਸ਼ਨ ਵਰਗੇ ਗੁੰਝਲਦਾਰ ਕੰਮ ਸ਼ਾਮਲ ਹਨ।
ਸਰਵਰ ਕਲਾਇੰਟ ਨਾਲ ਇੱਕ ਸੰਚਾਰ ਚੈਨਲ (communication channel) ਖੋਲ੍ਹਦਾ ਹੈ। ਇਹ ਪ੍ਰਕਿਰਿਆ ਖਤਮ ਹੋਣ ਤੱਕ ਇਸ ਚੈਨਲ ਨੂੰ ਖੁੱਲ੍ਹਾ ਰੱਖਦਾ ਹੈ।
Source: https://dev.to/rishini_dharan_t/understanding-server-sent-events-3mkd