Server Sent Events (SSE) ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು

ನೀವು ChatGPT ಬಳಸುತ್ತಿದ್ದೀರಿ ಎಂದು ಕಲ್ಪಿಸಿಕೊಳ್ಳಿ. ನೀವು ಒಂದು ಪ್ರಶ್ನೆಯನ್ನು ಕೇಳುತ್ತೀರಿ. ಪದಗಳು ಒಂದೊಂದಾಗಿ ಬರುವುದನ್ನು ನೋಡುವ ಬದಲಿಗೆ, ಇಡೀ ಉತ್ತರವು ಒಂದೇ ಬಾರಿಗೆ ಕಾಣಿಸಿಕೊಳ್ಳಲು ನೀವು 5 ಸೆಕೆಂಡುಗಳ ಕಾಲ ಕಾಯಬೇಕಾಗುತ್ತದೆ.

ಈ ವಿಳಂಬವು ನಿಧಾನವೆನಿಸುತ್ತದೆ. ಇದು ನಿಮಗೆ ಬೇಸರ ತರಿಸುತ್ತದೆ.

ಇದನ್ನು ಸರಿಪಡಿಸಲು, ಡೆವಲಪರ್‌ಗಳು ಸ್ಟ್ರೀಮಿಂಗ್ ರೆಸ್ಪಾನ್ಸ್‌ಗಳನ್ನು (streaming responses) ಬಳಸುತ್ತಾರೆ. ಇದು ಅನುಭವವನ್ನು ವೇಗವಾಗಿರುವಂತೆ ಮಾಡುತ್ತದೆ.

Server Sent Events (SSE) ಇದನ್ನು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ.

SSE ಎಂದರೇನು? SSE ಎಂಬುದು HTTP ಮೂಲಕ ಸರ್ವರ್‌ನಿಂದ ಕ್ಲೈಂಟ್‌ಗೆ ಡೇಟಾವನ್ನು ಸ್ಟ್ರೀಮ್ ಮಾಡಲು ಬಳಸುವ ಒಂದು ಮಾನದಂಡವಾಗಿದೆ (standard). ಇದು ಸರ್ವರ್ ನಿಮಗೆ ನೈಜ ಸಮಯದಲ್ಲಿ (real time) ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಕಳುಹಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.

ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ: ಸರ್ವರ್ ಸಣ್ಣ ಪಠ್ಯದ ತುಣುಕುಗಳನ್ನು (text blocks) ಕಳುಹಿಸುತ್ತದೆ. ಈ ತುಣುಕುಗಳು data, event, id, ಮತ್ತು retry ನಂತಹ ಫೀಲ್ಡ್‌ಗಳನ್ನು ಬಳಸುತ್ತವೆ. ಪ್ರತಿ ತುಣುಕನ್ನು ಒಂದು ಖಾಲಿ ಸಾಲಿನಿಂದ ಪ್ರತ್ಯೇಕಿಸಲಾಗುತ್ತದೆ.

ಉದಾಹರಣೆ: data: {"name": "Portal Gun", "price": 999.99}

SSE ನ ಸಾಮಾನ್ಯ ಬಳಕೆಗಳು:

  • AI ಚಾಟ್ ಸ್ಟ್ರೀಮಿಂಗ್
  • ಲೈವ್ ನೋಟಿಫಿಕೇಶನ್‌ಗಳು
  • ನೈಜ ಸಮಯದ ಲಾಗ್‌ಗಳು (Real time logs)
  • ಸಿಸ್ಟಮ್ ಅಬ್ಸರ್ವೇಬಿಲಿಟಿ (System observability)

SSE ಗಿಂತ ಮೊದಲು, ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಪಡೆಯಲು ಡೆವಲಪರ್‌ಗಳು ಎರಡು ಮುಖ್ಯ ವಿಧಾನಗಳನ್ನು ಬಳಸುತ್ತಿದ್ದರು:

  1. Short polling ಕ್ಲೈಂಟ್ ಸರ್ವರ್‌ನಿಂದ ಡೇಟಾವನ್ನು ಕೇಳುತ್ತದೆ. ಡೇಟಾ ಸಿದ್ಧವಿಲ್ಲದಿದ್ದರೆ, ಸರ್ವರ್ ಕಾಯುವ ಸಂದೇಶವನ್ನು ಕಳುಹಿಸುತ್ತದೆ. ಕ್ಲೈಂಟ್ ಕಾಯುತ್ತದೆ ಮತ್ತು ಮತ್ತೆ ಕೇಳುತ್ತದೆ. ಕೆಲಸ ಮುಗಿಯುವವರೆಗೆ ಇದು ಪುನರಾವರ್ತನೆಯಾಗುತ್ತದೆ.

  2. Long polling ಕ್ಲೈಂಟ್ ಸರ್ವರ್‌ನಿಂದ ಡೇಟಾವನ್ನು ಕೇಳುತ್ತದೆ. ಡೇಟಾ ಸಿದ್ಧವಾಗುವವರೆಗೆ ಅಥವಾ ಟೈಮೌಟ್ (timeout) ಆಗುವವರೆಗೆ ಸರ್ವರ್ ವಿನಂತಿಯನ್ನು (request) ತೆರೆದಿಡುತ್ತದೆ. ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು (response) ಪಡೆದ ತಕ್ಷಣ ಕ್ಲೈಂಟ್ ವಿನಂತಿಯನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕಾಗುತ್ತದೆ.

ಇವೆಂಟ್ ಸ್ಟ್ರೀಮ್‌ಗಳು ನಿರಂತರ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತವೆ. ಈ ಪ್ರಕ್ರಿಯೆಗಳು ಒಂದು ನಿರ್ದಿಷ್ಟ ಕ್ರಮವನ್ನು ಅನುಸರಿಸುತ್ತವೆ. ಇದು PDF ರಚಿಸುವಂತಹ ಸರಳ ಕೆಲಸಗಳಿಂದ ಹಿಡಿದು ಬ್ಯಾಂಕ್ ವಹಿವಾಟುಗಳಂತಹ ಸಂಕೀರ್ಣ ಕೆಲಸಗಳವರೆಗೆ ಇರುತ್ತದೆ.

ಸರ್ವರ್ ಕ್ಲೈಂಟ್‌ನೊಂದಿಗೆ ಸಂವಹನ ಚಾನಲ್ ಅನ್ನು (communication channel) ತೆರೆಯುತ್ತದೆ. ಪ್ರಕ್ರಿಯೆಯು ಮುಗಿಯುವವರೆಗೆ ಇದು ಚಾನಲ್ ಅನ್ನು ತೆರೆದಿಡುತ್ತದೆ.

ಮೂಲ: https://dev.to/rishini_dharan_t/understanding-server-sent-events-3mkd