Hyperlane-இல் WebSocket மற்றும் SSE

நவீன செயலிகளுக்கு நிகழ்நேரத் தரவு (Real-time data) மிக முக்கியமானது. அரட்டை (chat), நேரலை டேஷ்போர்டுகள் (live dashboards) மற்றும் அறிவிப்புகளுக்கு (notifications) இது தேவைப்படுகிறது.

Hyperlane என்பது ஒரு வேகமான Rust HTTP சர்வர் லைப்ரரி (library) ஆகும். இது நிகழ்நேரத் தரவை அனுப்ப இரண்டு முக்கிய வழிகளை ஆதரிக்கிறது: WebSocket மற்றும் Server-Sent Events (SSE).

WebSocket vs SSE

WebSocket என்பது இருவழித் தொடர்பு (bidirectional) கொண்டது. கிளையண்ட் (client) மற்றும் சர்வர் (server) ஆகிய இரண்டும் எந்த நேரத்திலும் செய்திகளை அனுப்ப முடியும். இது ஒரு ஒற்றை TCP இணைப்பைப் பயன்படுத்துகிறது. அரட்டை செயலிகள் அல்லது ஆன்லைன் விளையாட்டுகளுக்கு இதைப் பயன்படுத்தலாம்.

SSE என்பது ஒருவழித் தொடர்பு (unidirectional) கொண்டது. சர்வர் மட்டுமே கிளையண்டிற்குத் தரவை அனுப்பும். இது நிலையான HTTP-ஐப் பயன்படுத்துகிறது. செய்தித் தொகுப்புகள் (news feeds) அல்லது பங்குச் சந்தை நிலவரங்களுக்கு (stock tickers) இதைப் பயன்படுத்தலாம்.

Hyperlane-இல் WebSocket

WebSockets-ஐ எளிதாக்க Hyperlane attribute macros-களைப் பயன்படுத்துகிறது.

  • WebSocket கோரிக்கையை (request) கண்டறிய #[is_ws_upgrade_type] என்பதைப் பயன்படுத்தவும்.
  • தரவைப் பெற #[try_get_websocket_request] என்பதைப் பயன்படுத்தவும்.

எளிய கட்டளைகள் மூலம் இணைப்பின் வாழ்க்கைச் சுழற்சியை (connection life cycle) நீங்கள் நிர்வகிக்கலாம். தனித்தனி பிரேம்களையோ (frames) அல்லது பிரேம்களின் பட்டியலையோ நீங்கள் அனுப்பலாம். ஒரே நேரத்தில் பல பயனர்களுக்குச் செய்திகளை அனுப்ப hyperlane-broadcast போன்ற கருவிகளையும் நீங்கள் பயன்படுத்தலாம்.

Hyperlane-இல் SSE

SSE-ஐ அமைப்பது மிகவும் எளிது. நீங்கள் ஒரு ஹெடரை (header) மட்டும் அமைக்க வேண்டும்: Content-Type: text/event-stream.

பிரவுசர் (browser) தானாகவே மறுஇணைப்பை (reconnection) கையாண்டுவிடும். இது எளிய தரவு ஓட்டங்களுக்கு (data streams) மிகவும் நம்பகமானது. ஒவ்வொரு செய்தியும் ஒரு எளிய உரை வடிவத்தைப் பின்பற்றுகிறது: data: <message>.

Quick Comparison

• திசை (Direction): WebSocket என்பது இருவழி. SSE என்பது சர்வர்-லிருந்து-கிளையண்ட் மட்டுமே. • புரோட்டோகால் (Protocol): WebSocket ws:// பயன்படுத்துகிறது. SSE நிலையான HTTP-ஐப் பயன்படுத்துகிறது. • மறுஇணைப்பு (Reconnection): WebSocket மறுஇணைப்புகளை நீங்கள் கைமுறையாகக் கையாள வேண்டும். SSE-க்கு பிரவுசரே அதைச் செய்துவிடும். • தரவு வகை (Data Type): WebSocket பைனரி தரவை (binary data) ஆதரிக்கிறது. SSE உரையை (text) மட்டுமே ஆதரிக்கிறது. • சிக்கல்தன்மை (Complexity): WebSocket-ஐ உருவாக்குவது கடினம். SSE எளிதானது.

குறைந்த தாமதமும் (low latency) இருவழித் தொடர்பும் தேவைப்பட்டால் WebSocket-ஐத் தேர்ந்தெடுக்கவும். பயனர்களுக்குப் புதுப்பிப்புகளை (updates) அனுப்ப ஒரு எளிய வழி தேவைப்பட்டால் SSE-ஐத் தேர்ந்தெடுக்கவும்.

Rust-இல் இவை இரண்டையும் திறம்பட உருவாக்க Hyperlane உங்களுக்குத் தேவையான கருவிகளை வழங்குகிறது.

Project Code: https://github.com/hyperlane-dev/hyperlane

Source: https://dev.to/tengxgfyrz67s/websocket-and-sse-1867