What is WebSocket_ Why is it used & how is it different from HTTP_
1K views
May 22, 2024
In the video "What is WebSocket_ Why is it used & how is it different from HTTP_," viewers gain an understanding of WebSocket technology and its distinctions from HTTP. The content explains WebSocket as a communication protocol that allows full-duplex communication channels over a single TCP connection, enabling interactive and real-time web applications. It contrasts WebSocket with HTTP, highlighting how WebSocket facilitates persistent connections and bi-directional communication, unlike the request-response nature of HTTP. The video also covers use cases for WebSocket, such as chat applications, real-time gaming, and collaborative editing tools, demonstrating its advantages in scenarios requiring low-latency and efficient communication.
View Video Transcript
0:00
आपको बात करेंगे वैब सॉकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात कर�
0:30
इसके बारे में यह बाई डिरेक्शनल फुल डूपलेक्स कनेक्शन है जिसमें क्लाइन्ट और सर्वर एक दूसरे को किसी भी टाइम पर डेटा सेंड कर सकते है�
0:37
वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौक�
1:07
पर इसके बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के �
1:37
बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में ह�
2:07
बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करेंगे वैब सौकिट के बारे में हम बात करें�
2:37
इस चीज़ को भी वेरिफाई करनी के लिए, हम इस चीज़ को भी वेरिफाई करनी के लिए, हम इस चीज़ को भी वेरिफाई करनी के लिए, हम इस चीज़ को भी वेरिफाई करनी के लिए, हम इस चीज़ को भी वेरिफाई करनी के लिए, हम इस चीज़ को भी वेरिफा�
3:07
करनी के लिए, हम इस चीज़ को भी वेरिफाई करनी के लिए, हम इस चीज़ को भी वेरिफाई करनी के लिए, हम इस चीज़ को भी वेरिफाई करनी के लिए, हम इस चीज़ को भी वेरिफाई करनी के लिए, हम इस चीज़ को भी वेरिफाई करनी के लिए, हम इस चीज़ �
3:37
को बहुत ज़ादा फ्रीकुंटली यूज़ करते हैं पनी वेबसाइट को बिल्ड करने के लिए, इन फाक्ट मैक्सिमम ज�
3:41
रिक्वेस्ट जाती हैं किसी भी वेबसाइट पर, वो HTTP के थूँ जारी होती हैं. तो HTTP एक्साक्ल�
3:46
कैसे वर्क करता है? अब HTTP को अंड़स्टाइट करनी के लिए, एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक एक �
4:16
सारी की सारी जो request responses होते हैं, वो client और server के बीच मे�
4:20
HTTP में इसी तरहीके से work करते हैं. अगर client को कोई नई information चाहिए server से, तो इसे क्या करना पड़ेगा
4:25
दुबारा नई request भेजनी पड़ेगी और दुबारा उसके पास कोई response आएगा. तो HTTP is a unidirectional stateless protocol
4:34
जिसमें अगर कोई भी additional data भेजना होता है, तो वो हर request के साथ हमें बार-बार भेजना पड़ता है, in the form of headers
4:39
अब most of the जो standard websites होती हैं, वो HTTP के उपर ही work कर रही होती हैं
4:44
क्योंकि maximum use cases HTTP solve कर देता है हमारे लिए. For example, if we talk about amazon.com या Appen, इन websites के उपर maximum times HTTP ह�
4:52
use हो रहा होता है, पर problem HTTP में तब आती है, जब हम real-time
4:56
systems की बात करते हैं, real-time systems मतलब, अगर मुझे कोई chatting के लिए application build करनी है, या मुझे trading के लिए application
5:03
build करनी है, जिसमें real-time data चाहिए, तो उसमें बार-बार data के लिए मुझे क्या करना पड़ेगा, HTTP के थुर बार-बार request बहु�
5:12
है, यह एक बार-बार बार बहुत है, अगर महम क्या करते हैं, HTTP के लिए एक बार-बार क्या करते है, यह एक बार-बार बार बहुत है
5:18
यह एक बार-बार बहुत है, यह एक बार-बार बहुत है, यह एक बार-बार बहुत है
5:23
और एक होती है हमारे पास long polling, दोनों similar से होती हैं, पर दोनों में differences भी होते हैं
5:28
short polling के अंदर हम क्या करते हैं, थोड़े से time में, यानि ये half second भी हो सकता है, ये one second भी हो सकता है
5:34
depending upon the implementation, हम क्या करते हैं, client से server को request बेचते हैं, फिर हमारे पास कुछ response आता है
5:41
फिर दुबारे request बेचते हैं, फिर हमारे पास response आता है, फिर हम कुछ request बेचते हैं, फिर हमारे पास response आता है
5:45
तो इस तरीके से, एक timely manner में, वो fixed time frame होता है, जिसमें हम बार बार, बार बार request बेचते रहे हैं, और response का wait करते रहते हैं
5:51
इसमें problem यह आती है, for example, हम किसी के साथ chat कर रहे हैं, और दूसरी तरफ से, अगर कोई नए messages नहीं हैं
5:57
तो बार बार हमारे पास response आएगा, वो एक empty response होगा, और ऐसे ही cases में, इन empty responses की वज़े से, बहुत ज़ाधा resources waste हो जाते हैं
6:05
और इसी का एक दूसरा format होता है long polling, जिसमें हम थोड़े से longer duration के लिए अपने response का wait करते हैं
6:11
पर अगर इसमें भी हमारे पास time out आगया, because there is a limit until we can wait
6:15
time out के बाद हमें दुबार से request को re-send करना पड़ता है, अब polling कोई बहुत अच्छा तरीका नहीं है अपनी problem को solve करने का
6:22
तो इसलिए polling को भी हटा कर हमारे पास एक और better तरीका आया
6:25
जिसे हम कहते हैं server sent events, जो भी काफी जाधा frequently used होते हैं websites के अंदर
6:30
server sent events के अंदर क्या होता है, there is a unidirectional connection
6:35
जिसे server जब चाहे जितना चाहे data client को push कर सकता है
6:39
पर इसके अंदर एक problem यह है कि ये connection bi-directional नहीं है
6:44
इसमें client data push नहीं कर सकता, सिर्फ server ही client को data push कर सकता है
6:48
तो ये chatting application के लिए उतना जाधा suitable नहीं है, या फिर अगर हम trading भी कर रहे हैं
6:52
तो उसके लिए भी उतना जाधा suitable नहीं है, पर हाँ, ये उन cases के लिए बहुत जाधा suitable है
6:56
जहां सिर्फ server को client को बहुत जाधा frequently data send करनी की जरूरत है
7:00
जैसे हमारे Instagram lives हो गए, या फिर जैसे अगर हमें किसी notification को
7:05
बहुत सारी users को एक साथ बेजना है, broadcasting हो गई, news broadcasting हो गई
7:09
इस तरीके के systems में ये बहुत जाधा frequently use हो सकता है, और बहुत जाधा chat gpt के अंदर web socket नहीं होता
7:15
यह से SSE जिसके बारे में हम जाके एक्स्लोर कर सकते हैं
7:19
पर फिर इसी problem को solve करने के लिए हमारी पास है web sockets
7:22
web sockets are a way to create a persistent bi-directional full duplex connection
7:27
यानि हमें से एक phone call के लिए imagine कर सकते हैं, between the client and the server, जिसमें कोई कभी भी message कर सकता है
7:32
अब इसमें क्या होता है, web socket connection establish करने के लिए, सबसे पहले client server को
7:37
एक HTTP handshake request बेजता है, with an upgrade header, अच्छा यहाँ पर एक अच्छा interview question भी बनता है
7:51
कि web sockets के लिए, जो first request, client server को भेजता है
7:55
वो first request एक HTTP request होती है, तो you can remember that
8:00
and if server agrees, it replies with status code 101, which basically stands for switching protocol response
8:06
और जैसे ये response आ गया, handshake complete हो गया, और हमारे पास web socket connection establish हो गया है
8:13
अब client server को and server client को, कभी भी single connection
8:18
वही same connection के तुरू कोई भी data, कोई भी message transfer कर सकते हैं
8:21
तो एक बार अपनी differences को summarize कर लेते हैं, between HTTP and web socket
8:26
HTTP is like sending an email, पहले एक व्यक्ति email भेजेगा, फिर उसके basis पर दूसरा व्यक्ति हमें reply कर सकता है
8:33
फिर हम कोई email भेजेगे, फिर उसके basis पर दूसरा व्यक्ति हमें reply करेगा
8:37
जबकि web socket is like a phone call, जस में कोई भी, कभी भी, कोई भी message दे सकता है एक दूसरे को
8:43
theoretically अगर बात करें, HTTP is stateless protocol होती है, unidirectional होती है
8:47
यानि एक बार में, एक ही direction के अंदर data transmit हो सकता है, and it is half duplex
8:52
यानि या तो एक बार में server data भेज़ रहो गा, या एक बार में client data भेज़ रहो गा
8:56
जबकि web socket is stateful, साथ के साथ, web socket is bidirectional
9:04
it is not unidirectional, and तीसरा, web sockets are full duplex, यानि same time पर client and server एक दूसरे से बात कर सकते हैं
9:14
so this is the summarization of the differences between HTTP and web socket
9:19
अब let's move on to our third part, जहाँ पर हम अपना web socket server बिल्ड करने वाले हैं
9:23
अब वैसे तो web socket is a protocol, जिसे हम different languages के साथ use कर सकते हैं
9:27
जिसे golang हो गई, C sharp हो गई, बट हम यहाँ पर use करने वाले हैं
9:31
Node.js में एक benefit यह है, काफी सारी चीज़ें हम scratch से implement करने की ज़रूरत नहीं है
9:35
क्योंकि NPM के अंदर बहुत सारी useful libraries available है, और यह एक frequently used library कालड WS है
9:41
जिसे हम use करने वाले हैं to build our server, अब server को build करने के लि�
9:47
we have this empty folder called web socket AC, जिसमें सबसे पहले we are going to create another folder
9:53
जिसे हम server नाम दे देंगे, और हम जाएं तो server के साथ अपने client के लिए भ�
9:57
एक अलग से folder बना सकते हैं, बारिए हम focus करने वाले है�
10:01
अपने server को build करने के उपर, server के अंदर we are going to create our index.js
10:05
also server के अंदर हम initialize कर लेते हैं, अब index.js के अंद�
10:15
सबसे पहले तो we are going to import express, उसके बाद from ws we are going to import something called web socket server
10:29
आपको अप करेंगे, और आपको port को 8080 करेंगे, आपको पर बना जाएं
10:35
आपको पर बना जाएं, और बिच जाएं, आपको पर बना जाएं, आपको पर बना जाएं
10:43
और बिच जाएं, आपको पर बना जाएं, और बिच जाएं, और बिच जाएं
10:51
और बिच जाएं, और बिच जाएं, और बिच जाएं, और बिच जाएं
10:59
और बिच जाएं, और बिच जाएं, और बिच जाएं, और बिच जाएं
11:07
और बिच जाएं, और बिच जाएं, और बिच जाएं, और बिच जाएं
11:19
और बिच जाएं, और बिच जाएं, और बिच जाएं, और बिच जाएं
11:27
और बिच जाएं, और बिच जाएं, और बिच जाएं, और बिच जाएं
11:35
और बिच जाएं, और बिच जाएं, और बिच जाएं, और बिच जाएं
11:43
और बिच जाएं, बिच जाएं जाएं, बिच जाएं जाएं
11:53
बिच जाएं जाएं, बिच जाएं जाएं, बिच जाएं जाएं, बिच जाएं जाएं
12:01
बिच जाएं जाएं, बिच जाएं जाएं, बिच जाएं जाएं, बिच जाएं जाएं
12:09
बिच जाएं जाएं, बिच जाएं जाएं, बिच जाएं जाएं, बिच जाएं जाएं जाएं
12:17
बिच जाएं जाएं जाएं, बिच जाएं जाएं जाएं, बिच जाएं जाएं जाएं
12:23
बिच जाएं जाएं जाएं, बिच जाएं जाएं जाएं, बिच जाएं जाएं जाएं
12:29
बिच जाएं जाएं जाएं, बिच जाएं जाएं जाएं जाएं, बिच जाएं जाएं जाएं जाएं
12:35
बिच जाएं जाएं जाएं जाएं, बिच जाएं जाएं जाएं जाएं, बिच जाएं जाएं जाएं जाएं
12:41
बिच जाएं जाएं जाएं जाएं, बिच जाएं जाएं जाएं जाएं जाएं, बिच जाएं जाएं जाएं जाएं जाएं
12:47
बिच जाएं जाएं जाएं जाएं जाएं, बिच जाएं जाएं जाएं जाएं जाएं जाएं
12:51
बिच जाएं जाएं जाएं जाएं जाएं, बिच जाएं जाएं जाएं जाएं जाएं जाएं
12:55
बिच जाएं जाएं जाएं जाएं जाएं जाएं जाएं, बिच जाएं जाएं जाएं जाएं जाएं जाएं जाएं
12:59
बिच जाएं जाएं जाएं जाएं जाएं जाएं, बिच जाएं जाएं जाएं जाएं जाएं जाएं जाएं
13:03
बिच जाएं जाएं जाएं जाएं जाएं जाएं जाएं जाएं, बिच जाएं जाएं जाएं जाएं जाएं जाएं जाएं जाएं
13:07
बिच जाएं जाएं जाएं जाएं जाएं जाएं जाएं, बिच जाएं जाएं जाएं जाएं जाएं जाएं जाएं जाएं जाएं
13:11
बिच जाएं जाएं जाएं जाएं जाएं जाएं जाएं जाएं जाएं जाएं, और इस तरीके से हम अपने एंड़ पॉइंट पर रिक्वेस्ट भेजने वाले हैं
13:17
तु लोकल होस्ट 8080, और हम बाद कनेंगे, जैसे ही कनेंग किया हम बाद कनेंगे
13:23
अब कनेंग करने की बाद हम कुछ बात कर सकते हैं, हाई सर्वर, आई एम क्लाइन्ट
13:29
आपको बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बा�
13:59
करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लि�
14:29
गई बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात क�
14:59
करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लि�
15:29
खेला बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात करने के लिए बात �
#Email & Messaging
#Media Streaming Devices
#Programming
#Teleconferencing
#Text & Instant Messaging
#Voice & Video Chat
#Web Design & Development
#Web Services