{"id":29442,"date":"2026-09-17T06:08:47","date_gmt":"2026-09-17T06:08:47","guid":{"rendered":"https:\/\/umang.pk\/2026\/09\/17\/webrtc-%da%a9%db%8c-%d9%be%db%8c%d9%85%d8%a7%d8%a6%d8%b4-%da%a9%db%8c%d8%b3%db%92-%da%a9%d8%b1%db%8c%da%ba-%d8%b3%da%af%d9%86%d9%84%d9%86%da%af%d8%8c-nat-%d9%b9%d8%b1%d8%a7%d9%88%d8%b1%d8%b3%d9%84\/"},"modified":"2026-09-17T06:08:48","modified_gmt":"2026-09-17T06:08:48","slug":"webrtc-%da%a9%db%8c-%d9%be%db%8c%d9%85%d8%a7%d8%a6%d8%b4-%da%a9%db%8c%d8%b3%db%92-%da%a9%d8%b1%db%8c%da%ba-%d8%b3%da%af%d9%86%d9%84%d9%86%da%af%d8%8c-nat-%d9%b9%d8%b1%d8%a7%d9%88%d8%b1%d8%b3%d9%84","status":"publish","type":"post","link":"https:\/\/umang.pk\/ur\/2026\/09\/17\/webrtc-%da%a9%db%8c-%d9%be%db%8c%d9%85%d8%a7%d8%a6%d8%b4-%da%a9%db%8c%d8%b3%db%92-%da%a9%d8%b1%db%8c%da%ba-%d8%b3%da%af%d9%86%d9%84%d9%86%da%af%d8%8c-nat-%d9%b9%d8%b1%d8%a7%d9%88%d8%b1%d8%b3%d9%84\/","title":{"rendered":"WebRTC \u06a9\u06cc \u067e\u06cc\u0645\u0627\u0626\u0634 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba: \u0633\u06af\u0646\u0644\u0646\u06af\u060c NAT \u0679\u0631\u0627\u0648\u0631\u0633\u0644\u060c \u0627\u0648\u0631 \u0645\u06cc\u0634\/SFU\/MCU \u0679\u0631\u06cc\u0688 \u0622\u0641"},"content":{"rendered":"\n<div id=\"\">\n<p>\u0648\u06cc\u0628 \u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 \u06a9\u0645\u06cc\u0648\u0646\u06cc\u06a9\u06cc\u0634\u0646\u0632 (\u06cc\u0627 WebRTC) \u0627\u06cc\u06a9 \u06a9\u06be\u0644\u0627 \u0645\u0639\u06cc\u0627\u0631\u06cc \u0628\u0631\u0627\u0624\u0632\u0631 \u06c1\u06d2 \u062c\u0648 \u0622\u0688\u06cc\u0648\u060c \u0648\u06cc\u0688\u06cc\u0648 \u0627\u0648\u0631 \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0627\u06cc\u06a9 \u062f\u0648\u0633\u0631\u06d2 \u06a9\u0648 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u0648\u0626\u06cc \u067e\u0644\u06af \u0627\u0646 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u06a9\u0648\u0626\u06cc \u0645\u0642\u0627\u0645\u06cc \u0627\u06cc\u067e\u0633 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u060c APIs \u0633\u06d2 \u0622\u06af\u06d2 \u06a9\u0686\u06be \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u062c\u0648 \u062a\u0645\u0627\u0645 \u0628\u0631\u0627\u0624\u0632\u0631 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>WebRTC \u0645\u06cc\u0688\u06cc\u0627 \u06a9\u06d2 \u0631\u0627\u0633\u062a\u0648\u06ba \u0633\u06d2 \u0645\u062a\u0639\u0644\u0642 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u062c\u0628 \u062f\u0648\u0646\u0648\u06ba \u0633\u0627\u062a\u06be\u06cc \u0627\u06cc\u06a9 \u062f\u0648\u0633\u0631\u06d2 \u06a9\u0648 \u0688\u06be\u0648\u0646\u0688 \u0644\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u06a9\u0648\u0688\u06cc\u06a9 \u0645\u0630\u0627\u06a9\u0631\u0627\u062a \u0633\u06d2 \u0644\u06d2 \u06a9\u0631 \u0627\u0646\u06a9\u0648\u0688\u0646\u06af \u0633\u06d2 \u0644\u06d2 \u06a9\u0631 \u0679\u0631\u0627\u0646\u0633\u0645\u06cc\u0634\u0646 \u062a\u06a9 \u0633\u0628 \u06a9\u0686\u06be \u0633\u0646\u0628\u06be\u0627\u0644 \u0644\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u062c\u0633 \u0686\u06cc\u0632 \u06a9\u0627 \u06c1\u0645 \u06a9\u0628\u06be\u06cc \u0627\u062d\u0627\u0637\u06c1 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u06d2 \u0648\u06c1 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0627 \u062d\u0635\u06c1 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0645\u0636\u0645\u0648\u0646 \u062a\u06cc\u0646 APIs \u067e\u0631 \u0628\u062d\u062b \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u062a\u0641\u0635\u06cc\u0644\u0627\u062a \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u06a9\u06cc\u0648\u06ba \u0633\u06af\u0646\u0644\u0646\u06af \u0627\u0648\u0631 NAT \u0679\u0631\u0627\u0648\u0631\u0633\u0644 \u062a\u0635\u0631\u06cc\u062d \u0633\u06d2 \u0628\u0627\u06c1\u0631 \u0645\u0648\u062c\u0648\u062f \u06c1\u06cc\u06ba\u060c \u0628\u0691\u06d2 \u067e\u06cc\u0645\u0627\u0646\u06d2 \u067e\u0631 \u0633\u06af\u0646\u0644\u0646\u06af \u0633\u0631\u0648\u0631\u0632 \u06a9\u0648 \u0644\u0627\u06af\u0648 \u06a9\u0631\u0646\u0627\u060c \u0627\u0648\u0631 \u0645\u06cc\u0634\/SFU\/MCU \u0679\u0631\u06cc\u0688 \u0622\u0641 \u062c\u0648 \u06cc\u06c1 \u0637\u06d2 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0645\u06cc\u0688\u06cc\u0627 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u067e\u06cc\u0645\u0627\u0646\u06c1 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<h2 id=\"heading-table-of-contents\">\u0627\u0646\u0688\u06cc\u06a9\u0633<\/h2>\n<h2 id=\"heading-the-building-blocks-three-apis-one-gap\">\u0628\u0644\u0688\u0646\u06af \u0628\u0644\u0627\u06a9\u0633: \u062a\u06cc\u0646 APIs\u060c \u0627\u06cc\u06a9 \u06af\u06cc\u067e<\/h2>\n<p>WebRTC \u0627\u06cc\u0633\u0627 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u06cc\u0646 JavaScript API \u06a9\u0648 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p><code>RTCPeerConnection<\/code>    \u06cc\u06c1 \u062f\u0648 \u0633\u0627\u062a\u06be\u06cc\u0648\u06ba \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u06a9\u0648\u0688\u06cc\u06a9\u0633 \u067e\u0631 \u0628\u0627\u062a \u0686\u06cc\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062c\u0628 \u06a9\u0648\u0626\u06cc \u06a9\u0646\u06a9\u0634\u0646 \u0645\u0648\u062c\u0648\u062f \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u0645\u06cc\u0688\u06cc\u0627 \u0627\u0633\u0679\u0631\u06cc\u0645\u0632 \u06a9\u06cc \u0627\u0646\u06a9\u0648\u0688\u0646\u06af\u060c \u0688\u06cc \u06a9\u0648\u0688\u0646\u06af \u0627\u0648\u0631 \u0679\u0631\u0627\u0646\u0633\u0645\u06cc\u0634\u0646 \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>MediaStream<\/code>    \u06cc\u06c1 \u0622\u067e \u062c\u0648 \u0628\u06be\u06cc\u062c \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba \u0627\u0633\u06d2 \u0644\u06cc\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0622\u067e \u06a9\u06d2 \u0648\u06cc\u0628 \u06a9\u06cc\u0645 \u06cc\u0627 \u0645\u0627\u0626\u06a9\u0631\u0648\u0641\u0648\u0646 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u0648 \u0644\u067e\u06cc\u0679 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>RTCDataChannel<\/code>    \u06cc\u06c1 \u06a9\u0633\u06cc \u0628\u06be\u06cc \u0627\u06cc\u0633\u06cc \u0686\u06cc\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u06cc\u0688\u06cc\u0627 \u06a9\u0646\u06a9\u0634\u0646 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0686\u0644\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0622\u0688\u06cc\u0648 \u06cc\u0627 \u0648\u06cc\u0688\u06cc\u0648 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u0686\u06cc\u0679 \u0645\u06cc\u0633\u062c\u0632\u060c \u0641\u0627\u0626\u0644 \u0686\u0646\u06a9\u0633\u060c \u06af\u06cc\u0645 \u0627\u0633\u0679\u06cc\u0679\u060c \u06cc\u0627 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0688\u06cc\u0679\u0627 \u062c\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0648\u0688\u06cc\u06a9 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u0646 \u0645\u06cc\u06ba \u0633\u06d2 \u06a9\u0648\u0626\u06cc \u0628\u06be\u06cc \u0646\u06c1\u06cc\u06ba \u062c\u0627\u0646\u062a\u0627 \u06a9\u06c1 \u0627\u067e\u0646\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u062f\u0648\u0631 \u062f\u0631\u0627\u0632 \u06a9\u06d2 \u0633\u0627\u062a\u06be\u06cc\u0648\u06ba \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0648\u06c1\u06cc \u06c1\u06d2 \u062c\u0633\u06d2 WebRTC \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0686\u06be\u0648\u0691 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-signaling-and-the-offeranswer-exchange\">\u0633\u06af\u0646\u0644 \u0628\u06be\u06cc\u062c\u0646\u0627 \u0627\u0648\u0631 \u062a\u062c\u0627\u0648\u06cc\u0632\/\u062c\u0648\u0627\u0628\u0627\u062a \u06a9\u0627 \u062a\u0628\u0627\u062f\u0644\u06c1 \u06a9\u0631\u0646\u0627<\/h2>\n<p>\u0627\u0633 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06a9\u06c1 \u062f\u0648 \u0633\u0627\u062a\u06be\u06cc \u0645\u06cc\u0688\u06cc\u0627 \u06a9\u0627 \u062a\u0628\u0627\u062f\u0644\u06c1 \u06a9\u0631 \u0633\u06a9\u06cc\u06ba\u060c \u0627\u0646\u06c1\u06cc\u06ba \u06a9\u0648\u0688\u06cc\u06a9\u060c \u0646\u06cc\u0679 \u0648\u0631\u06a9 \u06a9\u06cc \u0645\u0639\u0644\u0648\u0645\u0627\u062a\u060c \u0645\u06cc\u0688\u06cc\u0627 \u06a9\u06cc \u0642\u0633\u0645\u060c \u0627\u0648\u0631 \u0633\u06cc\u0634\u0646 \u0688\u0633\u06a9\u0631\u067e\u0634\u0646 \u067e\u0631\u0648\u0679\u0648\u06a9\u0648\u0644 (SDP) \u0645\u06cc\u06ba \u0627\u0646\u06a9\u0648\u0688 \u06a9\u0631\u062f\u06c1 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644 \u06a9\u0627 \u062a\u0628\u0627\u062f\u0644\u06c1 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<p>WebRTC \u0627\u0633 \u062a\u0641\u0635\u06cc\u0644 \u06a9\u0648 \u0633\u0627\u062a\u06be\u06cc\u0648\u06ba \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0648\u0626\u06cc \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0627\u0631 \u0641\u0631\u0627\u06c1\u0645 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0633\u06af\u0646\u0644\u0646\u06af \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0642\u06cc\u0627\u0633 \u0622\u0631\u0627\u0626\u06cc \u062c\u0627\u0646 \u0628\u0648\u062c\u06be \u06a9\u0631 \u0627\u0633 \u06a9\u0648 \u0686\u06be\u0648\u0691 \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0627\u0633 \u06a9\u06d2 \u0627\u0648\u067e\u0631 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 WebSockets \u06cc\u0627 HTTP \u0637\u0648\u06cc\u0644 \u067e\u0648\u0644\u0646\u06af \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2\u06d4<\/p>\n<p>\u062a\u0628\u0627\u062f\u0644\u06c1 \u0628\u0630\u0627\u062a \u062e\u0648\u062f \u0627\u06cc\u06a9 \u0645\u0642\u0631\u0631\u06c1 \u0634\u06a9\u0644 \u06a9\u06cc \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2: \u06a9\u0627\u0644 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06c1\u0645 \u0645\u0631\u062a\u0628\u06c1 \u06a9\u06cc \u0637\u0631\u0641 \u0633\u06d2 \u062a\u062c\u0648\u06cc\u0632 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0645\u0648\u0635\u0648\u0644 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06c1\u0645 \u0645\u0631\u062a\u0628\u06c1 \u06a9\u06cc \u0637\u0631\u0641 \u0633\u06d2 \u062c\u0648\u0627\u0628\u06d4<\/p>\n<pre><code class=\"language-js\">\/\/ Peer A: create and send the offer\nconst pc = new RTCPeerConnection({ iceServers });\nconst offer = await pc.createOffer();\nawait pc.setLocalDescription(offer);\nsignalingChannel.send({ type: 'offer', sdp: pc.localDescription });\n\n\/\/ Peer B: accept the offer, respond with an answer\nawait pc.setRemoteDescription(offerFromA);\nconst answer = await pc.createAnswer();\nawait pc.setLocalDescription(answer);\nsignalingChannel.send({ type: 'answer', sdp: pc.localDescription });\n\n\/\/ Peer A: complete the handshake\nawait pc.setRemoteDescription(answerFromB);\n<\/code><\/pre>\n<p><code>setLocalDescription<\/code>    \u0627\u0648\u0631 <code>setRemoteDescription<\/code> \u06cc\u06c1\u0627\u06ba \u0635\u0631\u0641 \u062f\u0648 \u06a9\u0627\u0644\u06cc\u06ba \u06c1\u06cc\u06ba \u062c\u0648 \u06a9\u0648\u0626\u06cc \u062d\u0642\u06cc\u0642\u06cc \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba: \u0628\u0627\u0642\u06cc \u0633\u0628 \u06a9\u0686\u06be \u0635\u0631\u0641 \u0627\u06cc\u06a9 \u06c1\u0645 \u0645\u0631\u062a\u0628\u06c1 \u06a9\u06d2 \u0633\u06af\u0646\u0644\u0646\u06af \u06a9\u0646\u06a9\u0634\u0646 \u0633\u06d2 \u062f\u0648\u0633\u0631\u06d2 \u06a9\u06d2 \u0633\u0627\u062a\u06be SDP \u0628\u0644\u0627\u0628 \u0644\u0627 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-nat-traversal-ice-stun-and-turn\">NAT \u0679\u0631\u0627\u0648\u0631\u0633\u0644: ICE\u060c STUN\u060c \u0627\u0648\u0631 \u0679\u0631\u0646<\/h2>\n<p>\u0627\u06cc\u06a9 SDP \u0627\u06cc\u06a9\u0633\u0686\u06cc\u0646\u062c \u06c1\u0631 \u0627\u06cc\u06a9 \u06a9\u0648 \u0628\u062a\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u062f\u0648\u0633\u0631\u0627 \u06a9\u06cc\u0627 \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0688\u06cc\u0648\u0627\u0626\u0633\u0632 \u0622\u067e \u06a9\u0648 \u06cc\u06c1 \u0646\u06c1\u06cc\u06ba \u0628\u062a\u0627\u062a\u06cc \u06c1\u06cc\u06ba \u06a9\u06c1 \u0627\u06cc\u06a9 \u062f\u0648\u0633\u0631\u06d2 \u0633\u06d2 \u06a9\u06cc\u0633\u06d2 \u062c\u0691\u06cc\u06ba \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0648\u06c1 NAT \u06cc\u0627 \u0641\u0627\u0626\u0631 \u0648\u0627\u0644 \u06a9\u06d2 \u067e\u06cc\u0686\u06be\u06d2 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0646 \u06a9\u0627 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0631\u0648\u0679\u06cc\u0628\u0644 \u0627\u06cc\u0688\u0631\u06cc\u0633 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>ICE (\u0627\u0646\u0679\u0631\u0627\u06cc\u06a9\u0679\u0648 \u06a9\u0646\u06a9\u0634\u0646 \u0627\u0633\u0679\u06cc\u0628\u0644\u0634\u0645\u0646\u0679) \u0648\u06c1 \u062d\u0635\u06c1 \u06c1\u06d2 \u062c\u0648 \u0627\u0646 \u062a\u0645\u0627\u0645 \u067e\u062a\u0648\u06ba \u06a9\u0648 \u0627\u06a9\u0679\u06be\u0627 \u06a9\u0631\u06a9\u06d2 \u062d\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0646 \u0633\u06d2 \u06a9\u0648\u0626\u06cc \u06c1\u0645 \u0645\u0631\u062a\u0628\u06c1 \u0631\u0627\u0628\u0637\u06c1 \u06a9\u0631\u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062c\u0628 \u062a\u06a9 \u06cc\u06c1 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0646 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0645\u06cc\u062f\u0648\u0627\u0631 \u06a9\u06c1\u0644\u0627\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06cc\u06c1 \u067e\u062a\u06d2 \u062f\u0648 \u0637\u0631\u062d \u06a9\u06d2 \u0633\u0631\u0648\u0631\u0632 \u0633\u06d2 \u0622\u062a\u06d2 \u06c1\u06cc\u06ba: \u0633\u06cc\u0634\u0646 \u0679\u0631\u0627\u0648\u0631\u0633\u0644 \u06cc\u0648\u0679\u06cc\u0644\u06cc\u0679\u06cc\u0632 \u0628\u0631\u0627\u0626\u06d2 NAT (STUN) \u0627\u0648\u0631 \u0679\u0631\u0627\u0648\u0631\u0633\u0644 \u06cc\u0648\u0632\u0646\u06af \u0631\u06cc\u0644\u06d2 NAT (\u0679\u0631\u0646) \u06a9\u06d2 \u0627\u0631\u062f \u06af\u0631\u062f\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/09\/1789625327_693_WebRTC-\u06a9\u06cc-\u067e\u06cc\u0645\u0627\u0626\u0634-\u06a9\u06cc\u0633\u06d2-\u06a9\u0631\u06cc\u06ba-\u0633\u06af\u0646\u0644\u0646\u06af\u060c-NAT-\u0679\u0631\u0627\u0648\u0631\u0633\u0644\u060c-\u0627\u0648\u0631-\u0645\u06cc\u0634SFUMCU.png\" alt=\"\u06c1\u0645 \u0645\u0631\u062a\u0628\u06c1 \u062c\u0645\u0639 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0645\u06cc\u0632\u0628\u0627\u0646\u0648\u06ba\u060c STUN \u0627\u0648\u0631 \u0679\u0631\u0646 ICE \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0648\u06ba \u06a9\u0627 \u062e\u0627\u06a9\u06c1\" style=\"display: block;\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u062e\u0627\u06a9\u06c1 \u0627\u06cc\u06a9 \u0648\u0627\u062d\u062f \u06c1\u0645 \u0645\u0631\u062a\u0628\u06c1 \u06a9\u0648 \u0645\u062a\u0648\u0627\u0632\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062a\u06cc\u0646 \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0648\u06ba \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645 \u06a9\u0648 \u062c\u0645\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u067e\u0646\u06d2 \u0646\u06cc\u0679 \u0648\u0631\u06a9 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u060c STUN \u0633\u0631\u0648\u0631 \u0633\u06d2 \u0648\u0627\u067e\u0633 \u0622\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0633\u0631\u0648\u0631 \u06a9\u06cc \u0639\u06a9\u0627\u0633\u06cc \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0627\u0645\u06cc\u062f\u0648\u0627\u0631 (Public IP \u0627\u0648\u0631 NAT \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0645\u06cc\u067e \u06a9\u06cc\u06d2 \u06af\u0626\u06d2 \u067e\u0648\u0631\u0679)\u060c \u0627\u0648\u0631 \u0679\u0631\u0646 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u062a\u0641\u0648\u06cc\u0636 \u06a9\u0631\u062f\u06c1 \u0631\u06cc\u0644\u06d2 \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u06d4 \u062a\u06cc\u0646\u0648\u06ba \u06a9\u0648 \u0631\u06cc\u0645\u0648\u0679 \u067e\u06cc\u0626\u0631 \u06a9\u0648 ICE \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0648\u06ba \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0628\u06be\u06cc\u062c\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u062c\u0648 \u062c\u0648\u0691\u0627 \u06a9\u0627\u0645\u06cc\u0627\u0628\u06cc \u0633\u06d2 \u062c\u0691\u062a\u0627 \u06c1\u06d2 \u0627\u0633\u06d2 \u06a9\u0627\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>STUN \u0639\u0627\u0645 \u06a9\u06cc\u0633 \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u0645 \u0645\u0631\u062a\u0628\u06c1 STUN \u0633\u0631\u0648\u0631 \u0633\u06d2 \u0639\u0648\u0627\u0645\u06cc IP \u0627\u0648\u0631 NAT \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0645\u06cc\u067e \u06a9\u0631\u062f\u06c1 \u067e\u0648\u0631\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u067e\u0648\u0686\u06be\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0627\u0645\u06cc\u062f\u0648\u0627\u0631 \u06a9\u06d2 \u067e\u062a\u06d2 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062c\u0628 STUN \u06a9\u0627\u0641\u06cc \u0646\u06c1 \u06c1\u0648 \u062a\u0648 \u0679\u0631\u0646 \u0627\u06cc\u06a9 \u0645\u062a\u0628\u0627\u062f\u0644 \u06c1\u06d2\u06d4 Symmetric NAT \u0627\u0648\u0631 \u06a9\u0686\u06be \u0641\u0627\u0626\u0631 \u0648\u0627\u0644 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646\u0632 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0631\u0627\u0628\u0637\u0648\u06ba \u06a9\u0648 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0645\u0633\u062f\u0648\u062f \u06a9\u0631 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0679\u0631\u0646 \u0633\u0631\u0648\u0631 \u0627\u0633 \u06a9\u06cc \u0628\u062c\u0627\u0626\u06d2 \u062f\u0648 \u06c1\u0645 \u0639\u0645\u0631\u0648\u06ba \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0679\u0631\u06cc\u0641\u06a9 \u06a9\u0648 \u0631\u06cc\u0644\u06d2 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u0633\u06cc \u0628\u06be\u06cc \u0646\u06cc\u0679 \u0648\u0631\u06a9 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u067e\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0633\u0627\u062a\u06be\u06cc\u0648\u06ba \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u06a9\u0646\u06a9\u0634\u0646 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u062a\u0645\u0627\u0645 \u067e\u06cc\u06a9\u0679\u0648\u06ba \u06a9\u0648 \u062a\u06be\u0631\u0688 \u067e\u0627\u0631\u0679\u06cc \u0633\u0631\u0648\u0631 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0631\u0648\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c STUN \u0644\u06cc\u0679\u0646\u0633\u06cc \u0645\u06cc\u06ba \u0627\u0636\u0627\u0641\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u06a9\u0627\u0644 \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646\u06cc\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0631\u0648\u0631 \u0628\u06cc\u0646\u0688\u0648\u0688\u062a\u06be \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0648 \u06a9\u0686\u06be STUN \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0633\u06a9\u062a\u0627\u06d4<\/p>\n<p>\u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0648\u06ba \u06a9\u0627 \u062a\u0628\u0627\u062f\u0644\u06c1 \u062f\u0648 \u0637\u0631\u06cc\u0642\u0648\u06ba \u0633\u06d2 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0627\u06cc\u06a9 \u0628\u0627\u0642\u0627\u0639\u062f\u06c1 ICE \u0627\u0646\u062a\u0638\u0627\u0631 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u062a\u0645\u0627\u0645 \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0648\u06ba \u06a9\u0648 \u0628\u0627\u06c1\u0631 \u0628\u06be\u06cc\u062c\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u062c\u0645\u0639 \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0644\u06cc\u0627 \u062c\u0627\u062a\u0627\u06d4 \u06cc\u06c1 \u0622\u0633\u0627\u0646 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0633\u0627\u0645\u0646\u06d2 \u0645\u06cc\u06ba \u062a\u0627\u062e\u06cc\u0631 \u06a9\u0627 \u0627\u0636\u0627\u0641\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u0646\u06a9\u0634\u0646 \u06a9\u06cc \u06af\u0641\u062a \u0648 \u0634\u0646\u06cc\u062f \u0627\u0633 \u0648\u0642\u062a \u062a\u06a9 \u0634\u0631\u0648\u0639 \u0646\u06c1\u06cc\u06ba \u06c1\u0648 \u0633\u06a9\u062a\u06cc \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u0633\u0633\u062a \u062a\u0631\u06cc\u0646 \u0627\u0645\u06cc\u062f\u0648\u0627\u0631 \u062c\u0645\u0639 \u06a9\u0631\u0646\u0627 \u0645\u06a9\u0645\u0644 \u0646\u06c1 \u06a9\u0631 \u0644\u06d2\u06d4<\/p>\n<p>\u062f\u0648\u0633\u0631\u0627\u060c \u0686\u06be\u0648\u0679\u0627 ICE \u062c\u06cc\u0633\u06d2 \u06c1\u06cc \u06c1\u0631 \u0627\u0645\u06cc\u062f\u0648\u0627\u0631 \u06a9\u0648 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0633\u06d2 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u062a\u0645\u0627\u0645 \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0648\u06ba \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u067e\u06c1\u0644\u06d2 \u0622\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0627\u0645\u06cc\u062f\u0648\u0627\u0631 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06af\u0641\u062a \u0648 \u0634\u0646\u06cc\u062f \u0634\u0631\u0648\u0639 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u062a\u0627\u06c1\u0645\u060c \u06cc\u06c1 \u0627\u064f\u0646 \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0648\u06ba \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0627\u062a\u06be\u06cc\u0648\u06ba \u0633\u06d2 \u0633\u06af\u0646\u0644\u0646\u06af \u0627\u0648\u0631 ICE \u062f\u0648\u0646\u0648\u06ba \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06a9\u06cc \u0642\u06cc\u0645\u062a \u067e\u0631 \u0622\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u0622\u0646\u06d2 \u06a9\u06cc \u0628\u062c\u0627\u0626\u06d2 \u0628\u062a\u062f\u0631\u06cc\u062c \u067e\u06c1\u0646\u0686\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0648\u0642\u062a \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u062d\u0633\u0627\u0633 \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06cc\u06c1 \u062a\u062c\u0648\u06cc\u0632 \u06a9\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u0627\u0646 \u06a9\u0648 \u0686\u06be\u0648\u0679\u06d2 \u0627\u0636\u0627\u0641\u06d2 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0646\u0641\u0627\u0630 \u06a9\u06cc \u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0628\u0691\u06be \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u062c\u062f\u06cc\u062f WebRTC \u0627\u0633\u0679\u06cc\u06a9 \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633 \u06a9\u06cc \u062d\u0645\u0627\u06cc\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-js\">\/\/ Sending side: forward each candidate the moment ICE finds it\npc.onicecandidate = (event) => {\n  if (event.candidate) {\n    signalingChannel.send({ type: 'ice-candidate', candidate: event.candidate });\n  }\n};\n\n\/\/ Receiving side: add each candidate as it arrives, don't wait for the rest\nsignalingChannel.on('ice-candidate', ({ candidate }) => {\n  pc.addIceCandidate(candidate);\n});\n<\/code><\/pre>\n<h2 id=\"heading-an-example-implementation\">\u0646\u0641\u0627\u0630 \u06a9\u06cc \u0645\u062b\u0627\u0644<\/h2>\n<p>\u06c1\u0645 \u0646\u06d2 \u06cc\u06c1 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0633\u06af\u0646\u0644\u0646\u06af \u0633\u0631\u0648\u0631 MVP \u0628\u0646\u0627\u06cc\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0646 \u06a9\u06cc \u0627\u0635\u0644 \u0645\u06cc\u06ba \u067e\u06cc\u0645\u0627\u0646\u06d2 \u067e\u0631 \u06a9\u06cc\u0627 \u0642\u06cc\u0645\u062a \u06c1\u06d2\u06d4<\/p>\n<ul>\n<li>\n<p>\u0633\u0631\u0648\u0631\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 Node.js \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u0633 \u06a9\u0627 \u0633\u0646\u06af\u0644 \u062a\u06be\u0631\u06cc\u0688\u0688 \u0627\u06cc\u0648\u0646\u0679 \u0644\u0648\u067e \u0641\u06cc \u06a9\u0646\u06a9\u0634\u0646 \u062a\u06be\u0631\u06cc\u0688 \u0627\u0648\u0648\u0631 \u06c1\u06cc\u0688 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u0628\u06c1\u062a \u0633\u06d2 \u06a9\u0646\u06a9\u0631\u0646\u0679 WebSocket \u06a9\u0646\u06a9\u0634\u0646 \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0631\u0648\u0679\u0646\u06af \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0648\u0631 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0646\u06cc\u06a9\u0679\u06cc\u0648\u06cc\u0679\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 Socket.IO \u06a9\u06d2 \u0627\u0648\u067e\u0631 \u067e\u0631\u062a\u0648\u06ba \u0648\u0627\u0644\u0627\u060c Socket.IO \u062e\u0648\u062f \u0628\u062e\u0648\u062f HTTP \u0644\u0627\u0646\u06af \u067e\u0648\u0644\u0646\u06af \u0645\u06cc\u06ba \u0648\u0627\u067e\u0633 \u0622\u062c\u0627\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0627 \u0646\u06cc\u0679 \u0648\u0631\u06a9 WebSockets \u06a9\u0648 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0628\u0644\u0627\u06a9 \u06a9\u0631 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/09\/1789625327_53_WebRTC-\u06a9\u06cc-\u067e\u06cc\u0645\u0627\u0626\u0634-\u06a9\u06cc\u0633\u06d2-\u06a9\u0631\u06cc\u06ba-\u0633\u06af\u0646\u0644\u0646\u06af\u060c-NAT-\u0679\u0631\u0627\u0648\u0631\u0633\u0644\u060c-\u0627\u0648\u0631-\u0645\u06cc\u0634SFUMCU.png\" alt=\"Redis \u06a9\u06cc \u062d\u0645\u0627\u06cc\u062a \u06cc\u0627\u0641\u062a\u06c1 EKS \u067e\u0631 ALB \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 Socket.IO \u067e\u0648\u0688 \u0633\u06d2 \u062c\u0691\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0627 \u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0686\u0631 \u0688\u0627\u06cc\u0627\u06af\u0631\u0627\u0645\u06d4\" style=\"display: block;\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u062e\u0627\u06a9\u06c1 \u0627\u06cc\u06a9 \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0648 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2 \u062c\u0648 WebSockets \u067e\u0631 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0644\u0648\u0688 \u0628\u06cc\u0644\u0646\u0633\u0631 \u0633\u06d2 \u0645\u0646\u0633\u0644\u06a9 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 (HTTP \u0644\u0627\u0646\u06af \u067e\u0648\u0644\u0646\u06af \u0633\u06d2 \u0628\u062f\u0644 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2)\u06d4 \u06cc\u06c1 EKS \u067e\u0631 Docker \u06a9\u0646\u0679\u06cc\u0646\u0631\u0632 \u0645\u06cc\u06ba \u0686\u0644\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0645\u062a\u0639\u062f\u062f Socket.IO \u0633\u0631\u0648\u0631 \u067e\u0648\u0688\u0632 \u0645\u06cc\u06ba \u0633\u06d2 \u06c1\u0631 \u0627\u06cc\u06a9 \u06a9\u0646\u06a9\u0634\u0646 \u06a9\u0648 \u0631\u0648\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u0645\u0627\u0645 \u067e\u0648\u0688\u0632 \u06a9\u0645\u0631\u06d2 \u06a9\u06cc \u062d\u0627\u0644\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u06c1\u06cc Redis \u06a9\u0644\u0633\u0679\u0631 \u06a9\u0627 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0627\u0633 \u0633\u06d2 \u06a9\u0648\u0626\u06cc \u0641\u0631\u0642 \u0646\u06c1\u06cc\u06ba \u067e\u0691\u062a\u0627 \u06a9\u06c1 \u06a9\u0648\u0626\u06cc \u062e\u0627\u0635 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0633 \u067e\u0648\u0688 \u0645\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u0631\u0648\u0645 \u0679\u0648 \u067e\u06cc\u0626\u0631 \u0645\u06cc\u067e\u0646\u06af\u0632 Redis (Amazon ElastiCache) \u0645\u06cc\u06ba \u0631\u06c1\u062a\u06cc \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0635\u0631\u0641 &quot;\u0627\u0633 \u06a9\u0645\u0631\u06d2 \u0645\u06cc\u06ba \u0627\u0648\u0631 \u06a9\u0648\u0646 \u06c1\u06d2&#8221; \u06a9\u0627 \u0641\u0648\u0631\u06cc \u062c\u0648\u0627\u0628 \u062f\u06cc\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2 \u0627\u0648\u0631 \u06a9\u0627\u0644 \u0633\u06d2 \u0622\u06af\u06d2 \u06a9\u0686\u06be \u0628\u06be\u06cc \u0628\u0631\u0642\u0631\u0627\u0631 \u0646\u06c1\u06cc\u06ba \u0631\u06c1\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1\u06cc \u0648\u062c\u06c1 \u06c1\u06d2 \u06a9\u06c1 ALB \u06a9\u06d2 \u0686\u067e\u0686\u067e\u0627 \u0633\u06cc\u0634\u0646 \u0627\u06cc\u0633\u0627 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 WebSocket \u06a9\u0646\u06a9\u0634\u0646 \u06a9\u0648 \u0627\u067e\u0646\u06cc \u067e\u0648\u0631\u06cc \u0632\u0646\u062f\u06af\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u06c1\u06cc \u0633\u06af\u0646\u0644\u0646\u06af \u0633\u0631\u0648\u0631 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0628\u0646\u062f \u0631\u06c1\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u06cc \u062a\u0645\u0627\u0645 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u06c1\u0631 \u0628\u0627\u0631 \u0627\u06cc\u06a9 \u06c1\u06cc \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u067e\u0648\u0688 \u062a\u06a9 \u067e\u06c1\u0646\u0686\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<p>\u0627\u06c1\u0645 \u0648\u0627\u0642\u0639\u0627\u062a \u06a9\u06d2 \u0639\u0644\u0627\u0648\u06c1 \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0627\u06cc\u06a9 \u067e\u062a\u0644\u06cc \u0631\u06cc\u0644\u06d2 \u06c1\u06d2\u06d4 \u06cc\u06c1 Redis \u0645\u06cc\u06ba \u06a9\u0645\u0631\u06d2 \u06a9\u06cc \u0631\u06a9\u0646\u06cc\u062a \u06a9\u0648 \u0679\u0631\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 SDP \u0628\u0644\u0627\u0628 \u06cc\u0627 ICE \u0627\u0645\u06cc\u062f\u0648\u0627\u0631 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u062f\u06cc\u06a9\u06be\u06d2 \u0628\u063a\u06cc\u0631 \u067e\u06cc\u063a\u0627\u0645\u0627\u062a \u06a9\u0648 \u062f\u0631\u0633\u062a \u0633\u0627\u06a9\u0679 \u067e\u0631 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">io.on('connection', (socket) => {\n  socket.on('join', async (roomId) => {\n    socket.join(roomId);\n    await redis.sadd(`room:${roomId}`, socket.id);\n    socket.to(roomId).emit('peer-joined', socket.id);\n  });\n\n  socket.on('offer', ({ target, sdp }) => {\n    io.to(target).emit('offer', {\n      from: socket.id,\n      sdp,\n    });\n  });\n\n  socket.on('answer', ({ target, sdp }) => {\n    io.to(target).emit('answer', {\n      from: socket.id,\n      sdp,\n    });\n  });\n\n  socket.on('ice-candidate', ({ target, candidate }) => {\n    io.to(target).emit('ice-candidate', {\n      from: socket.id,\n      candidate,\n    });\n  });\n\n  socket.on('disconnecting', async () => {\n    \/\/ Copy the rooms before Socket.IO removes the socket from them.\n    \/\/ socket.rooms also contains a private room named after socket.id.\n    const rooms = [...socket.rooms].filter(\n      (roomId) => roomId !== socket.id\n    );\n\n    for (const roomId of rooms) {\n      socket.to(roomId).emit('peer-left', socket.id);\n      await redis.srem(`room:${roomId}`, socket.id);\n    }\n  });\n});\n<\/code><\/pre>\n<p><code>join<\/code>    \u0627\u06cc\u06a9 \u06a9\u0645\u0631\u06d2 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0633\u0627\u06a9\u0679 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633\u06d2 Redis \u0645\u06cc\u06ba \u0644\u0627\u06af \u0627\u0646 \u06a9\u0631\u06cc\u06ba \u062a\u0627\u06a9\u06c1 \u062f\u0648\u0633\u0631\u06d2 \u0633\u0631\u0648\u0631 \u06a9\u06cc \u0645\u062b\u0627\u0644\u06cc\u06ba \u0627\u0633\u06d2 \u062f\u06cc\u06a9\u06be \u0633\u06a9\u06cc\u06ba\u06d4 <code>offer<\/code>\u060c <code>answer<\/code>\u0627\u0648\u0631 <code>ice-candidate<\/code> \u0648\u06c1 \u0633\u0628 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u06cc\u06a9 \u06c1\u06cc \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u0639\u0646\u06cc\u060c \u06cc\u06c1 \u0679\u0627\u0631\u06af\u0679 \u0633\u0627\u06a9\u0679 ID \u0644\u06cc\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 SDP \u06cc\u0627 ICE \u0688\u06cc\u0679\u0627 \u06a9\u06cc \u062a\u0634\u0631\u06cc\u062d \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u067e\u06d2 \u0644\u0648\u0688 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u06c1 <code>disconnecting<\/code> Socket.IO \u0633\u0627\u06a9\u0679 \u06a9\u0648 \u0627\u067e\u0646\u06cc \u062c\u06af\u06c1 \u0633\u06d2 \u06c1\u0679\u0627\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u0635\u0641\u0627\u0626\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u067e\u06c1\u0644\u06d2 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0627\u0633\u067e\u06cc\u0633 \u0622\u0626\u06cc \u0688\u06cc \u06a9\u0648 \u06a9\u0627\u067e\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0633\u0627\u06a9\u0679 \u06a9\u06cc \u067e\u0631\u0627\u0626\u06cc\u0648\u06cc\u0679 \u0627\u0633\u067e\u06cc\u0633 \u06a9\u0648 \u0686\u06be\u0648\u0691 \u06a9\u0631\u060c \u067e\u06be\u0631 \u0628\u0627\u0642\u06cc \u0633\u0627\u062a\u06be\u06cc\u0648\u06ba \u06a9\u0648 \u0645\u0637\u0644\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0646\u06a9\u0634\u0646 \u062e\u062a\u0645 \u06c1\u0648 \u06af\u06cc\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u067e\u06cc\u0626\u0631 \u06a9\u0648 \u0627\u0633 \u06a9\u06d2 \u0645\u062a\u0639\u0644\u0642\u06c1 Redis \u0633\u06cc\u0679 \u0633\u06d2 \u06c1\u0679\u0627 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u0645\u0631\u06d2 \u06a9\u06cc ID \u06a9\u0648 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06a9\u0627\u067e\u06cc \u06a9\u0631\u0646\u0627 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u063a\u06cc\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0630\u06cc\u0631 Redis \u0622\u067e\u0631\u06cc\u0634\u0646 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062c\u0628 \u0631\u0627\u0628\u0637\u06c1 \u0645\u0646\u0642\u0637\u0639 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u0633\u0627\u06a9\u0679 \u06a9\u06cc \u06a9\u0645\u0631\u06d2 \u06a9\u06cc \u0631\u06a9\u0646\u06cc\u062a \u0635\u0627\u0641 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u0635\u0641\u0627\u0626\u06cc \u06a9\u06d2 \u0628\u063a\u06cc\u0631\u060c Redis \u0633\u0627\u062a\u06be\u06cc\u0648\u06ba \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u0628\u0646\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0633\u0627\u06a9\u0679 \u06a9\u06d2 \u063a\u0627\u0626\u0628 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u0628\u06be\u06cc \u0645\u0648\u062c\u0648\u062f \u0631\u06c1\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0648 \u06a9\u0645\u0631\u06d2 \u06a9\u06cc \u0628\u0627\u0633\u06cc \u062d\u0627\u0644\u062a \u06a9\u0648 \u067e\u06cc\u0686\u06be\u06d2 \u0686\u06be\u0648\u0691 \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0628\u0627\u0642\u06cc \u0633\u0627\u062a\u06be\u06cc\u0648\u06ba \u06a9\u0648 \u0633\u06af\u0646\u0644\u0646\u06af \u067e\u06cc\u063a\u0627\u0645\u0627\u062a \u06cc\u0627 ICE \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0648\u06ba \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u06a9\u0631\u0646\u0627 \u067e\u0691\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u06a9\u0628\u06be\u06cc \u0646\u06c1\u06cc\u06ba \u067e\u06c1\u0646\u0686\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-benchmark\">\u0645\u0639\u06cc\u0627\u0631\u06cc<\/h3>\n<p>10 \u0646\u0642\u0644\u06cc\u06ba\u060c \u06c1\u0631 \u0627\u06cc\u06a9 1 CPU \u0627\u0648\u0631 512 MB \u0645\u06cc\u0645\u0648\u0631\u06cc \u06a9\u06d2 \u0633\u0627\u062a\u06be\u060c 60 \u0633\u06cc\u06a9\u0646\u0688 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0641\u06cc \u0633\u06cc\u06a9\u0646\u0688 100,000 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u067e\u0631 \u0686\u0644 \u0631\u06c1\u0627 \u06c1\u06d2:<\/p>\n<table>\n<thead>\n<tr>\n<th>\u0648\u0627\u0642\u0639\u06c1<\/th>\n<th>\u0645\u06a9\u0645\u0644<\/th>\n<th>\u0646\u0627\u06a9\u0627\u0645<\/th>\n<th>\u062a\u0627\u062b\u06cc\u0631<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0686\u06cc\u0679 \u0631\u0648\u0645 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u0648\u06ba\u06d4<\/td>\n<td>99991<\/td>\n<td>9<\/td>\n<td>99.991%<\/td>\n<\/tr>\n<tr>\n<td>\u0627\u06cc\u0633 \u0688\u06cc \u067e\u06cc \u06a9\u06cc \u062a\u062c\u0648\u06cc\u0632<\/td>\n<td>99968<\/td>\n<td>32<\/td>\n<td>99.968%<\/td>\n<\/tr>\n<tr>\n<td>SDP \u062c\u0648\u0627\u0628<\/td>\n<td>99982<\/td>\n<td>18<\/td>\n<td>99.982%<\/td>\n<\/tr>\n<tr>\n<td>\u067e\u0627\u0646\u06cc \u06a9\u06d2 \u0642\u0637\u0631\u06d2 \u0628\u0631\u0641<\/td>\n<td>99977<\/td>\n<td>23<\/td>\n<td>99.977%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u062a\u0645\u0627\u0645 \u0627\u06cc\u0648\u0646\u0679 \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645 \u0645\u06cc\u06ba 99.96% \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0644\u0648\u0688\u0632 \u06a9\u06cc \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u062a\u06be\u06cc\u060c \u0686\u0627\u0631 \u0627\u0648\u0633\u0637 99.98% \u06a9\u06d2 \u0633\u0627\u062a\u06be\u06d4 \u0633\u06af\u0646\u0644 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u06c1\u0644\u06a9\u06d2 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0686\u0648\u0646\u06a9\u06c1 \u0622\u067e \u0686\u06be\u0648\u0679\u06d2 JSON \u067e\u06d2 \u0644\u0648\u0688\u0632 \u06a9\u0648 \u0645\u06cc\u0688\u06cc\u0627 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u06a9\u06be\u0644\u06d2 \u06a9\u0646\u06a9\u0634\u0646\u0632 \u067e\u0631 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0627\u0633 \u0642\u0633\u0645 \u06a9\u06d2 \u0633\u0631\u0648\u0631\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0635\u0644 \u0631\u06a9\u0627\u0648\u0679 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u06c1\u0645\u06cc\u0634\u06c1 \u06a9\u0646\u06a9\u0634\u0646\u0632 \u0627\u0648\u0631 \u0645\u06cc\u0645\u0648\u0631\u06cc \u0641\u06cc \u06a9\u0646\u06a9\u0634\u0646 \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u060c CPU \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-scaling-the-topology\">\u0679\u0648\u067e\u0648\u0644\u0648\u062c\u06cc \u06a9\u06cc \u062a\u0648\u0633\u06cc\u0639<\/h2>\n<p>\u0627\u06cc\u06a9 \u0633\u06af\u0646\u0644 \u0635\u0631\u0641 \u0627\u06cc\u06a9 \u06a9\u0646\u06a9\u0634\u0646 \u0642\u0627\u0626\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0635\u0644 \u0645\u06cc\u0688\u06cc\u0627 \u0679\u0631\u06cc\u0641\u06a9 \u06a9\u0627 \u06a9\u06cc\u0627 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u062f\u0648 \u06cc\u0627 \u062f\u0648 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0633\u0627\u062a\u06be\u06cc \u0628\u0627\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u06cc\u06a9 \u0627\u0644\u06af \u0627\u0648\u0631 \u0645\u0634\u06a9\u0644 \u0645\u0633\u0626\u0644\u06c1 \u06c1\u06d2 \u0627\u0648\u0631 \u062a\u06cc\u0646 \u0645\u06cc\u06ba \u0633\u06d2 \u06a9\u0633\u06cc \u0627\u06cc\u06a9 \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u0646\u06d2 \u067e\u0631 \u0622\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-peer-to-peer-p2p\">\u067e\u06cc\u0626\u0631 \u0679\u0648 \u067e\u06cc\u0626\u0631 (P2P)<\/h3>\n<p>\u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0646\u0642\u0637\u06c1 \u0646\u0638\u0631 \u06c1\u0631 \u06c1\u0645 \u0645\u0631\u062a\u0628\u06c1 \u06a9\u0648 \u06c1\u0631 \u062f\u0648\u0633\u0631\u06d2 \u06c1\u0645 \u0645\u0631\u062a\u0628\u06c1 \u0633\u06d2 \u062c\u0648\u0691\u062a\u0627 \u06c1\u06d2\u060c \u06cc\u0639\u0646\u06cc \u0645\u06a9\u0645\u0644 \u0645\u06cc\u0634\u06d4 \u06cc\u06c1 \u0633\u0633\u062a\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u0633\u06d2 \u06a9\u0633\u06cc \u0628\u06be\u06cc \u0645\u06cc\u0688\u06cc\u0627 \u0633\u0631\u0648\u0631 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u0627\u0648\u0631 \u062a\u0645\u0627\u0645 \u0627\u0633\u0679\u0631\u06cc\u0645\u0632 \u06a9\u0648 \u0622\u062e\u0631 \u0633\u06d2 \u0622\u062e\u0631 \u062a\u06a9 \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u06a9\u0646\u06a9\u0634\u0646\u0632 \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u06a9\u0648 \u0686\u0627\u0631\u0648\u06ba \u0637\u0631\u0641 \u0633\u06d2 \u0628\u0691\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>n(n-1)\/2<\/code> \u06a9\u06d2 \u0644\u06cc\u06d2 <code>n<\/code> \u0633\u0627\u062a\u06be\u06cc 6 \u067e\u06cc\u0626\u0631\u0632 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 15 \u06a9\u0646\u06a9\u0634\u0646\u060c \u062c\u06c1\u0627\u06ba \u06c1\u0631 \u06c1\u0645 \u0645\u0631\u062a\u0628\u06c1 \u0627\u067e\u0646\u0627 \u0633\u0644\u0633\u0644\u06c1 \u062f\u0648\u0633\u0631\u06d2 5 \u067e\u0631 \u0627\u067e \u0644\u0648\u0688 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0628\u062f\u0644\u06d2 \u0645\u06cc\u06ba 5 \u0627\u0633\u0679\u0631\u06cc\u0645\u0632 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/09\/1789625327_93_WebRTC-\u06a9\u06cc-\u067e\u06cc\u0645\u0627\u0626\u0634-\u06a9\u06cc\u0633\u06d2-\u06a9\u0631\u06cc\u06ba-\u0633\u06af\u0646\u0644\u0646\u06af\u060c-NAT-\u0679\u0631\u0627\u0648\u0631\u0633\u0644\u060c-\u0627\u0648\u0631-\u0645\u06cc\u0634SFUMCU.png\" alt=\"6 \u0633\u0627\u062a\u06be\u06cc\u0648\u06ba \u06a9\u0627 \u0645\u06a9\u0645\u0644 \u0645\u06cc\u0634 \u0679\u0648\u067e\u0648\u0644\u0627\u062c\u06cc \u062e\u0627\u06a9\u06c1 \u062c\u0648 \u062a\u0645\u0627\u0645 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u062c\u0691\u06d2 \u06c1\u0648\u0626\u06d2 \u06c1\u06cc\u06ba\u06d4\" style=\"display: block;\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>1 \u0627\u06cc\u0645 \u0628\u06cc \u067e\u06cc \u0627\u06cc\u0633 \u0641\u06cc \u0627\u0633\u0679\u0631\u06cc\u0645 \u067e\u0631\u060c 6 \u0627\u0641\u0631\u0627\u062f \u06a9\u06cc \u0645\u06cc\u0634 \u06a9\u0627\u0644 \u0645\u06cc\u06ba \u06c1\u0631 \u06c1\u0645 \u0645\u0631\u062a\u0628\u06c1 5 \u0627\u06cc\u0645 \u0628\u06cc \u067e\u06cc \u0627\u06cc\u0633 \u06a9\u0648 \u0628\u0691\u06be\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u067e\u0646\u06cc \u0634\u0631\u06a9\u062a \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 5 \u0627\u06cc\u0645 \u0628\u06cc \u067e\u06cc \u0627\u06cc\u0633 \u06a9\u0648 \u06a9\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1\u06cc \u0642\u06cc\u0645\u062a \u06c1\u06d2 \u062c\u0648 \u0634\u0631\u06a9\u0627\u0621 \u06a9\u06cc \u0627\u06cc\u06a9 \u0686\u06be\u0648\u0679\u06cc \u0633\u06cc \u062a\u0639\u062f\u0627\u062f \u0633\u06d2 \u0622\u06af\u06d2 \u0645\u06cc\u0634\u0646\u06af \u06a9\u0648 \u0646\u0627\u0642\u0627\u0628\u0644 \u0639\u0645\u0644 \u0628\u0646\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0633\u0631\u0648\u0631 \u06a9\u06cc \u06a9\u0648\u0626\u06cc \u062d\u062f \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u0628\u0633 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u06c1\u0631 \u0627\u06cc\u06a9 \u06a9\u0644\u0627\u0626\u0646\u0679 \u067e\u06c1\u0644\u06d2 \u0627\u067e\u0646\u06cc \u0627\u067e \u0644\u0648\u0688 \u0628\u06cc\u0646\u0688\u0648\u062a\u06be \u0627\u0648\u0631 CPU \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-selective-forwarding-unit-sfu\">\u0633\u0644\u06cc\u06a9\u0679\u06cc\u0648 \u0688\u06cc\u0644\u06cc\u0648\u0631\u06cc \u06cc\u0648\u0646\u0679 (SFU)<\/h3>\n<p>SFU \u0627\u0633 \u0645\u06cc\u0634 \u06a9\u0648 \u0633\u062a\u0627\u0631\u06d2 \u06a9\u06cc \u0634\u06a9\u0644 \u0645\u06cc\u06ba \u06a9\u0645 \u06a9\u0631 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u0631 \u06c1\u0645 \u0645\u0631\u062a\u0628\u06c1 \u0645\u0631\u06a9\u0632\u06cc \u0633\u0631\u0648\u0631 \u06a9\u0648 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u0627\u06cc\u06a9 \u0633\u0644\u0633\u0644\u06c1 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0645\u0631\u06a9\u0632\u06cc \u0633\u0631\u0648\u0631 \u06c1\u0631 \u0633\u0644\u0633\u0644\u06c1 \u06a9\u0648 \u062f\u0648\u0633\u0631\u06d2 \u0633\u0627\u062a\u06be\u06cc\u0648\u06ba \u06a9\u06d2 \u067e\u0627\u0633 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2 \u062c\u0646\u06c1\u06cc\u06ba \u0627\u0633 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u0633\u06d2 \u0627\u067e \u0644\u0648\u0688 \u0686\u06be\u0648\u0691 \u062f\u06cc\u06ba\u06d4 <code>(n-1)<\/code> \u0622\u067e \u06a9\u06cc \u06a9\u0627\u0644 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u0633\u06d2 \u0642\u0637\u0639 \u0646\u0638\u0631\u060c \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u0627\u0628 \u0628\u06be\u06cc 1 \u06a9\u0646\u06a9\u0634\u0646 \u0627\u0648\u0631 1 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06c1\u0648\u06af\u0627\u06d4 <code>(n-1)<\/code> \u0627\u0633 \u06a9\u06cc \u0648\u062c\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 SFU \u0627\u0628 \u0628\u06be\u06cc \u06c1\u0631 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be\u06cc \u06a9\u0648 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06c1\u0631 \u06a9\u0633\u06cc \u06a9\u06d2 \u0633\u0644\u0633\u0644\u06d2 \u06a9\u0648 \u0688\u06cc\u0644\u06cc\u0648\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u062a\u0642\u0627\u0636\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/09\/1789625327_621_WebRTC-\u06a9\u06cc-\u067e\u06cc\u0645\u0627\u0626\u0634-\u06a9\u06cc\u0633\u06d2-\u06a9\u0631\u06cc\u06ba-\u0633\u06af\u0646\u0644\u0646\u06af\u060c-NAT-\u0679\u0631\u0627\u0648\u0631\u0633\u0644\u060c-\u0627\u0648\u0631-\u0645\u06cc\u0634SFUMCU.png\" alt=\"\u0645\u0631\u06a9\u0632\u06cc SFU \u0633\u0631\u0648\u0631 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u062c\u0691\u06d2 \u06c1\u0648\u0626\u06d2 \u0686\u06be \u0633\u0627\u062a\u06be\u06cc\u0648\u06ba \u06a9\u0627 \u0627\u0633\u0679\u0627\u0631 \u0679\u0648\u067e\u0648\u0644\u0648\u062c\u06cc \u062e\u0627\u06a9\u06c1\" style=\"display: block;\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06a9\u0644 \u06a9\u0646\u06a9\u0634\u0646 \u0686\u0648\u06a9\u0648\u0631 \u0633\u06d2 \u0644\u06a9\u06cc\u0631\u06cc \u062a\u06a9 \u06a9\u0645 \u06c1\u0648 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>n<\/code> \u0627\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 <code>n(n-1)\/2<\/code>\u06c1\u0645 \u0645\u0631\u062a\u0628\u06c1 \u06a9\u06d2 \u0627\u067e \u0644\u0648\u0688 \u06a9\u06d2 \u0627\u062e\u0631\u0627\u062c\u0627\u062a \u06a9\u0627\u0644 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u0633\u06a9\u06cc\u0644\u0646\u06af \u06a9\u0648 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0631\u0648\u06a9 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c SFU \u06a9\u0648 \u062e\u0648\u062f \u06c1\u06cc \u0628\u0691\u06be\u0627\u06cc\u0627 \u062c\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0641\u0627\u0631\u0648\u0631\u0688\u0646\u06af \u067e\u06cc\u06a9\u0679\u0633 \u06a9\u0648 \u0688\u06cc \u06a9\u0648\u0688\u0646\u06af \u0627\u0648\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0646\u06a9\u0648\u0688\u0646\u06af \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u06a9\u06c1\u06cc\u06ba \u0632\u06cc\u0627\u062f\u06c1 \u0633\u0633\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0648\u06c1 \u062a\u062c\u0627\u0631\u062a \u06c1\u06d2 \u062c\u0648 MCU \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-multipoint-conferencing-unit-mcu\">\u0645\u0644\u0679\u06cc \u067e\u0648\u0627\u0626\u0646\u0679 \u06a9\u0627\u0646\u0641\u0631\u0646\u0633 \u06cc\u0648\u0646\u0679 (MCU)<\/h3>\n<p>MCU \u0627\u06cc\u06a9 \u0642\u062f\u0645 \u0622\u06af\u06d2 \u0628\u0691\u06be\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u0645\u0627\u0645 \u06c1\u0645 \u0639\u0645\u0631\u0648\u06ba \u06a9\u06d2 \u0633\u0644\u0633\u0644\u06d2 \u06a9\u0648 \u0688\u06cc \u06a9\u0648\u0688 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0633\u0631\u0648\u0631 \u0633\u0627\u0626\u06cc\u0688 \u067e\u0631 \u0627\u06cc\u06a9 \u062c\u0627\u0645\u0639 \u0633\u0679\u0631\u06cc\u0645 \u0645\u06cc\u06ba \u0645\u0644\u0627\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u067e\u06be\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0646\u06a9\u0648\u0688 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u06c1\u06cc \u0633\u0644\u0633\u0644\u06d2 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0648\u0627\u067e\u0633 \u0628\u06be\u06cc\u062c\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u067e \u0644\u0648\u0688\u0632 \u0627\u0648\u0631 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688\u0632 \u062f\u0648\u0646\u0648\u06ba \u0641\u06cc \u067e\u06cc\u0626\u0631 1 \u06a9\u0646\u06a9\u0634\u0646 \u062a\u06a9 \u06af\u0631 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u062a\u06cc\u0646 \u0637\u0631\u06cc\u0642\u0648\u06ba \u0645\u06cc\u06ba \u0633\u0628 \u0633\u06d2 \u06a9\u0645 \u0628\u06cc\u0646\u0688\u0648\u0688\u062a\u06be \u0644\u0627\u06af\u062a \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/09\/1789625327_524_WebRTC-\u06a9\u06cc-\u067e\u06cc\u0645\u0627\u0626\u0634-\u06a9\u06cc\u0633\u06d2-\u06a9\u0631\u06cc\u06ba-\u0633\u06af\u0646\u0644\u0646\u06af\u060c-NAT-\u0679\u0631\u0627\u0648\u0631\u0633\u0644\u060c-\u0627\u0648\u0631-\u0645\u06cc\u0634SFUMCU.png\" alt=\"\u0645\u0631\u06a9\u0632\u06cc MCU \u0633\u0631\u0648\u0631 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u062c\u0691\u06d2 \u06c1\u0648\u0626\u06d2 \u0686\u06be \u0633\u0627\u062a\u06be\u06cc\u0648\u06ba \u06a9\u0627 \u0627\u0633\u0679\u0627\u0631 \u0679\u0648\u067e\u0648\u0644\u0648\u062c\u06cc \u0688\u0627\u06cc\u0627\u06af\u0631\u0627\u0645\" style=\"display: block;\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0628\u06cc\u0646\u0688\u0648\u0688\u062a\u06be \u06a9\u06cc \u06cc\u06c1 \u06a9\u0645\u06cc \u06c1\u0631 \u06a9\u0627\u0644\u060c \u0688\u06cc \u06a9\u0648\u0688\u0646\u06af\u060c \u0645\u06a9\u0633\u0646\u06af\u060c \u0627\u0648\u0631 \u0627\u0646\u06a9\u0648\u0688\u0646\u06af \u0645\u06cc\u06ba \u062a\u0645\u0627\u0645 \u0634\u0631\u06a9\u0627\u0621 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 \u0679\u0631\u0627\u0646\u0633 \u06a9\u0648\u0688\u0646\u06af \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0645\u0633\u0644\u0633\u0644 \u062d\u0627\u0635\u0644 \u06a9\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u06cc\u06a9 CPU \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u06a9\u062b\u0631 SFU \u0633\u06d2 \u0645\u062e\u062a\u0644\u0641 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u06c1\u0627\u0631\u0688\u0648\u06cc\u0626\u0631 \u0627\u0646\u06a9\u0648\u0688\u0631\u0632 \u06a9\u0627 \u067e\u0627\u0628\u0646\u062f \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0633\u0631\u0648\u0631 \u0633\u0627\u0626\u06cc\u0688 \u0622\u0624\u0679 \u067e\u0679 \u0644\u06d2 \u0622\u0624\u0679 \u0645\u06cc\u06ba \u0628\u06be\u06cc \u062a\u0631\u0645\u06cc\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u0644\u0627\u0626\u0646\u0679 \u062f\u0648\u0628\u0627\u0631\u06c1 \u062a\u0631\u062a\u06cc\u0628 \u0646\u06c1\u06cc\u06ba \u062f\u06d2 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0648\u06c1 SFU \u0633\u06d2 \u0639\u0644\u06cc\u062d\u062f\u06c1 \u0633\u0644\u0633\u0644\u06d2 \u0648\u0635\u0648\u0644 \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a \u06a9\u06c1\u0627\u06ba \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<table>\n<thead>\n<tr>\n<th>\u0646\u0642\u0637\u06c1 \u0646\u0638\u0631<\/th>\n<th>\u0627\u067e \u0644\u0648\u0688\/\u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/th>\n<th>\u0628\u06cc\u0646\u0688\u0648\u062a\u06be<\/th>\n<th>\u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>P2P<\/td>\n<td>5Mbps \/ 5Mbps<\/td>\n<td>30Mbps<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>\u0627\u06cc\u0633 \u0627\u06cc\u0641 \u06cc\u0648<\/td>\n<td>1 \u0627\u06cc\u0645 \u0628\u06cc \u067e\u06cc \u0627\u06cc\u0633 \/ 5 \u0627\u06cc\u0645 \u0628\u06cc \u067e\u06cc \u0627\u06cc\u0633<\/td>\n<td>12Mbps<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>\u0627\u06cc\u0645 \u0633\u06cc \u06cc\u0648<\/td>\n<td>1 \u0627\u06cc\u0645 \u0628\u06cc \u067e\u06cc \u0627\u06cc\u0633 \/ 1 \u0627\u06cc\u0645 \u0628\u06cc \u067e\u06cc \u0627\u06cc\u0633<\/td>\n<td>12Mbps<\/td>\n<td>6<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u06af\u0631\u0648\u067e \u06a9\u0627\u0644\u0646\u06af \u067e\u0631\u0648\u0688\u06a9\u0679\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c SFU \u06a9\u0648 \u0641\u0648\u0642\u06cc\u062a \u062d\u0627\u0635\u0644 \u06c1\u06d2\u06d4 \u0645\u06cc\u0634 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u06cc\u0646\u0688\u0648\u0688\u062a\u06be \u06a9\u06cc \u0628\u0686\u062a \u0627\u0628 \u0628\u06be\u06cc \u0628\u0631\u0642\u0631\u0627\u0631 \u06c1\u06d2 \u0627\u0648\u0631 \u06a9\u0644\u0627\u0626\u0646\u0679 \u0627\u0628 \u0628\u06be\u06cc \u0627\u067e\u0646\u06d2 \u0644\u06d2 \u0622\u0624\u0679 \u06a9\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 MCU \u062a\u0646\u06af \u0635\u0648\u0631\u062a\u0648\u06ba \u0645\u06cc\u06ba \u0627\u067e\u0646\u06d2 \u0644\u06cc\u06d2 \u0627\u062f\u0627\u0626\u06cc\u06af\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0627\u0633 \u06a9\u06cc \u062a\u0627\u0631\u06cc\u062e \u0627\u06cc\u06a9 \u0635\u0627\u0641 \u0633\u062a\u06be\u0631\u06cc \u0645\u062b\u0627\u0644 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u062a\u0645\u0627\u0645 \u0627\u0633\u0679\u0631\u06cc\u0645\u0632 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u0633\u0631\u0648\u0631 \u0633\u0627\u0626\u06cc\u0688 \u067e\u0631 \u0627\u06a9\u0679\u06be\u06d2 \u06c1\u06cc\u06ba\u060c S3 \u067e\u0631 \u0646\u062a\u0627\u0626\u062c \u0644\u06a9\u06be\u0646\u0627 \u06a9\u0644\u0627\u0626\u0646\u0679 \u0633\u0627\u0626\u0688 \u06a9\u0645\u067e\u0648\u0632\u0679 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u0641\u0627\u0626\u0644 \u0631\u0627\u0626\u0679 \u06c1\u06d2\u06d4 <code>n<\/code> \u0627\u0644\u06af \u0646\u06c1\u0631\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-what-else-matters-at-scale\">\u0633\u0627\u0626\u0632 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u062f\u06cc\u06af\u0631 \u0627\u06c1\u0645 \u0645\u0639\u0627\u0645\u0644\u0627\u062a<\/h2>\n<p>\u0679\u0648\u067e\u0648\u0644\u0648\u062c\u06cc \u0648\u0627\u062d\u062f \u0686\u06cc\u0632 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u062c\u0648 \u062d\u0642\u06cc\u0642\u06cc \u0679\u0631\u06cc\u0641\u06a9 \u0645\u06cc\u06ba \u0679\u0648\u0679 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u06a9\u0646\u06cc\u06a9\u0679\u06cc\u0648\u06cc\u0679\u06cc\u060c \u0633\u06af\u0646\u0644 \u0644\u0648\u0688\u0646\u06af\u060c \u0628\u0631\u0627\u0624\u0632\u0631 \u0633\u067e\u0648\u0631\u0679\u060c \u0633\u06cc\u06a9\u0648\u0631\u0679\u06cc\u060c \u0627\u0648\u0631 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u06c1\u0631 \u0627\u06cc\u06a9 \u06a9\u06d2 \u0627\u067e\u0646\u06d2 \u0646\u0627\u06a9\u0627\u0645 \u0637\u0631\u06cc\u0642\u06d2 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0628 \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0679\u0631\u06cc\u0641\u06a9 \u0633\u0633\u0679\u0645 \u062a\u06a9 \u067e\u06c1\u0646\u0686 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-connectivity\">\u06a9\u0646\u06cc\u06a9\u0679\u0648\u0679\u06cc<\/h3>\n<p>\u06a9\u0686\u06be \u0646\u06cc\u0679 \u0648\u0631\u06a9 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 STUN \u06a9\u0648 \u0631\u0648\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0679\u0631\u06cc\u0641\u06a9 \u06a9\u0648 \u0645\u0648\u0691 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u06cc\u06c1 \u0633\u0627\u062f\u06c1 HTTPS \u06a9\u06cc \u0637\u0631\u062d \u0646\u0638\u0631 \u0646\u06c1 \u0622\u0626\u06d2\u06d4 \u0645\u0639\u06cc\u0627\u0631\u06cc \u0628\u0646\u062f\u0631\u06af\u0627\u06c1\u0648\u06ba \u067e\u0631 STUN \u0627\u0648\u0631 \u0679\u0631\u0646 \u06a9\u0648 TLS \u067e\u0631 \u0686\u0644\u0627\u0646\u06d2 \u0627\u0648\u0631 STUN \u0633\u0631\u0648\u0631 \u06a9\u0648 \u062c\u063a\u0631\u0627\u0641\u06cc\u0627\u0626\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0644\u0627\u0626\u0646\u0679\u0633 \u06a9\u06d2 \u0642\u0631\u06cc\u0628 \u0631\u06a9\u06be\u0646\u0627 \u0627\u0633 \u0641\u0631\u06cc\u06a9\u0648\u0626\u0646\u0633\u06cc \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2 \u062c\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0679\u0631\u0646 \u067e\u0631 \u0648\u0627\u067e\u0633 \u0622\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0631\u0627\u0628\u0637\u06c1 \u06a9\u0627\u0645\u06cc\u0627\u0628 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-signaling-under-load\">\u0628\u0648\u062c\u06be \u06a9\u06d2 \u062a\u062d\u062a \u0633\u06af\u0646\u0644<\/h3>\n<p>\u0686\u0648\u0646\u06a9\u06c1 \u0633\u06af\u0646\u0644\u0646\u06af \u0633\u0631\u0648\u0631\u0632 \u0645\u06cc\u06ba \u0645\u06cc\u0688\u06cc\u0627 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0627\u0646 \u06a9\u06cc \u067e\u06cc\u0645\u0627\u0626\u0634 \u06a9\u0631\u0646\u0627 \u0648\u06cc\u0628 \u0633\u0631\u0648\u0633\u0632 \u06a9\u0627 \u0627\u06cc\u06a9 \u0639\u0627\u0645 \u0645\u0633\u0626\u0644\u06c1 \u06c1\u06d2\u06d4 CPU- \u0627\u0648\u0631 \u0645\u06cc\u0645\u0648\u0631\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u0630\u0645\u06c1 \u062f\u0627\u0631 \u0627\u0641\u0642\u06cc \u067e\u0648\u0688 \u0622\u0679\u0648 \u0627\u0633\u06a9\u06cc\u0644\u0646\u06af \u0686\u067e\u0686\u067e\u0627 \u0633\u06cc\u0634\u0646\u0648\u06ba \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u062c\u06cc\u0633\u06d2 \u0648\u06c1 \u0686\u0644\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0628\u0627\u0644\u06a9\u0644 \u06a9\u0633\u06cc \u0628\u06be\u06cc \u062f\u0648\u0633\u0631\u06cc \u0628\u06d2 \u0648\u0637\u0646 \u0633\u0631\u0648\u0633 \u06a9\u06cc \u0637\u0631\u062d\u06d4<\/p>\n<h3 id=\"heading-browser-support\">\u0628\u0631\u0627\u0624\u0632\u0631 \u0633\u067e\u0648\u0631\u0679<\/h3>\n<p>\u067e\u0631\u0627\u0646\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631\u0632 \u0645\u06cc\u06ba \u0645\u06a9\u0645\u0644 WebRTC \u0633\u067e\u0648\u0631\u0679 \u06a9\u06cc \u06a9\u0645\u06cc \u06c1\u0648 \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4 Adapter.js \u062c\u06cc\u0633\u06d2 \u067e\u0648\u0644\u06cc \u0641\u0644\u0632 \u06c1\u0631 \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0622\u067e \u06a9\u06d2 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u0648\u0688 \u06a9\u0648 \u0628\u0631\u0627\u0646\u0686 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631 \u0648\u0631\u0698\u0646 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 API \u06a9\u06d2 \u0641\u0631\u0642 \u06a9\u0648 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-security\">\u0633\u06cc\u06a9\u0648\u0631\u0679\u06cc<\/h3>\n<p>WebRTC \u0645\u06cc\u0688\u06cc\u0627 \u06a9\u0648 \u0628\u0637\u0648\u0631 \u0688\u06cc\u0641\u0627\u0644\u0679 \u062e\u0641\u06cc\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 DTLS \u06a9\u0644\u06cc\u062f\u06cc \u062a\u0628\u0627\u062f\u0644\u06d2 \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 SRTP \u0622\u0688\u06cc\u0648 \u0627\u0648\u0631 \u0648\u06cc\u0688\u06cc\u0648 \u067e\u06cc\u06a9\u0679 \u06a9\u0648 \u062e\u0641\u06cc\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u0627\u06c1\u0645\u060c \u06cc\u06c1 \u0633\u0627\u062a\u06be\u06cc\u0648\u06ba \u0627\u0648\u0631 \u0631\u06cc\u0644\u06d2 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0679\u0631\u0627\u0646\u0633\u067e\u0648\u0631\u0679 \u0627\u0646\u06a9\u0631\u067e\u0634\u0646 \u06c1\u06d2\u060c \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0627\u06cc\u0646\u0688 \u0679\u0648 \u0627\u06cc\u0646\u0688 \u0627\u0646\u06a9\u0631\u067e\u0634\u0646 \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0633\u06af\u0646\u0644\u0646\u06af \u0686\u06cc\u0646\u0644 \u067e\u0631 HTTPS \u0627\u0648\u0631 WSS \u06a9\u0648 \u0646\u0627\u0641\u0630 \u06a9\u0631\u0646\u0627\u060c \u0679\u0631\u0646 \u0633\u0631\u0648\u0631 \u0633\u06d2 \u062a\u0635\u062f\u06cc\u0642 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a\u060c \u0633\u06af\u0646\u0644\u0646\u06af API \u06a9\u06cc \u0634\u0631\u062d \u06a9\u0648 \u0645\u062d\u062f\u0648\u062f \u06a9\u0631\u0646\u0627\u060c \u0627\u0648\u0631 \u067e\u0631\u0641\u06cc\u06a9\u0679 \u0641\u0627\u0631\u0648\u0631\u0688 \u0633\u06cc\u06a9\u0631\u06cc\u0633\u06cc \u06a9\u0648 \u0641\u0639\u0627\u0644 \u06a9\u0631\u0646\u0627 \u0627\u0633 \u062e\u0644\u0627 \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0633\u06d2 DTLS\/SRTP \u062e\u0648\u062f \u06c1\u06cc\u0646\u0688\u0644 \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0633\u06a9\u062a\u0627\u06d4<\/p>\n<h3 id=\"heading-reliability\">\u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f<\/h3>\n<p>WebRTC UDP \u067e\u0631 \u0686\u0644\u062a\u0627 \u06c1\u06d2\u060c \u062f\u0648\u0628\u0627\u0631\u06c1 \u0645\u0646\u062a\u0642\u0644\u06cc \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u067e\u06cc\u06a9\u0679\u0648\u06ba \u06a9\u0648 \u0686\u06be\u0648\u0691\u0646\u0627 \u0627\u0648\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0646\u0627\u06d4 \u0641\u0627\u0631\u0648\u0631\u0688 \u062e\u0631\u0627\u0628\u06cc \u06a9\u06cc \u0627\u0635\u0644\u0627\u062d \u0627\u0635\u0644 \u0627\u0633\u0679\u0631\u06cc\u0645 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0628\u06d2 \u06a9\u0627\u0631 \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u062c\u0633 \u0633\u06d2 \u0648\u0635\u0648\u0644 \u06a9\u0646\u0646\u062f\u06c1 \u06a9\u0648 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0645\u0648\u062c\u0648\u062f \u0641\u0627\u0644\u062a\u0648 \u067e\u0646 \u0633\u06d2 \u06a9\u06be\u0648\u0626\u06d2 \u06c1\u0648\u0626\u06d2 \u067e\u06cc\u06a9\u0679\u0648\u06ba \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u062a\u0634\u06a9\u06cc\u0644 \u062f\u06cc\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u0645\u0644\u062a\u06cc \u06c1\u06d2\u060c \u0628\u062c\u0627\u0626\u06d2 \u0627\u0633 \u06a9\u06d2 \u06a9\u06c1 \u0631\u06cc \u0679\u0631\u0627\u0646\u0633\u0645\u06cc\u0634\u0646\u0632 \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u06a9\u0631\u06cc\u06ba \u062c\u0648 \u0628\u06c1\u062a \u062f\u06cc\u0631 \u0633\u06d2 \u067e\u06c1\u0646\u0686\u062a\u06cc \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 \u0645\u06cc\u0688\u06cc\u0627 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0645\u0633\u0626\u0644\u06c1 \u0628\u0646 \u062c\u0627\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-next-steps\">\u0627\u06af\u0644\u06d2 \u0627\u0642\u062f\u0627\u0645\u0627\u062a<\/h2>\n<p>\u0627\u0633 \u0622\u0631\u0679\u06cc\u06a9\u0644 \u0645\u06cc\u06ba\u060c \u0622\u067e \u0646\u06d2 \u0627\u0646 \u062a\u06cc\u0646 APIs \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0633\u06cc\u06a9\u06be\u0627 \u062c\u0646 \u06a9\u0648 WebRTC \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0633\u06af\u0646\u0644\u0646\u06af \u0627\u0648\u0631 NAT \u0679\u0631\u0627\u0648\u0631\u0633\u0644 \u06a9\u06cc\u0648\u06ba \u0645\u062e\u0635\u0648\u0635 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u060c \u0628\u0648\u062c\u06be \u06a9\u06d2 \u0646\u06cc\u0686\u06d2 \u0633\u06af\u0646\u0644\u0646\u06af \u0633\u0631\u0648\u0631 \u06a9\u0648 \u0628\u06cc\u0646\u0686 \u0645\u0627\u0631\u06a9 \u06a9\u06cc\u0633\u06d2 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u060c \u0627\u0648\u0631 \u0645\u06cc\u0634\u060c SFU\u060c \u0627\u0648\u0631 MCU \u0679\u0648\u067e\u0648\u0644\u0627\u062c\u06cc\u0632 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0628\u06cc\u0646\u0688 \u0648\u0688\u062a\u06be \u06a9\u0648 \u0645\u062a\u0648\u0627\u0632\u0646 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u0645\u06cc\u06ba \u0633\u06d2 \u06a9\u0648\u0626\u06cc \u0628\u06be\u06cc \u0648\u06cc\u0688\u06cc\u0648 \u06a9\u0627\u0644\u0632 \u062a\u06a9 \u0645\u062d\u062f\u0648\u062f \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 WebRTC \u067e\u0631 \u0628\u0646\u0627\u0626\u06d2 \u06af\u0626\u06d2 \u062a\u0645\u0627\u0645 \u067e\u0631\u0648\u0688\u06a9\u0679\u0633\u060c \u062c\u06cc\u0633\u06d2 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u06cc\u0626\u0631\u0646\u06af\u060c \u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 \u062a\u0639\u0627\u0648\u0646\u060c \u06cc\u0627 \u06a9\u0644\u0627\u0624\u0688 \u06af\u06cc\u0645\u0646\u06af\u060c \u0627\u06cc\u06a9 \u06c1\u06cc \u0633\u06af\u0646\u0644\u0646\u06af\u060c NAT \u0679\u0631\u0627\u0648\u0631\u0633\u0644\u060c \u0627\u0648\u0631 \u0679\u0627\u067e\u0648\u0644\u0648\u062c\u06cc \u06a9\u06d2 \u0641\u06cc\u0635\u0644\u0648\u06ba \u06a9\u06cc \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0622\u067e \u0630\u06cc\u0644 \u06a9\u06d2 \u0648\u0633\u0627\u0626\u0644 \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06d2 \u06a9\u0631 \u0628\u06be\u06cc \u0633\u06cc\u06a9\u06be\u0646\u0627 \u062c\u0627\u0631\u06cc \u0631\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0648\u06cc\u0628 \u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 \u06a9\u0645\u06cc\u0648\u0646\u06cc\u06a9\u06cc\u0634\u0646\u0632 (\u06cc\u0627 WebRTC) \u0627\u06cc\u06a9 \u06a9\u06be\u0644\u0627 \u0645\u0639\u06cc\u0627\u0631\u06cc \u0628\u0631\u0627\u0624\u0632\u0631 \u06c1\u06d2 \u062c\u0648 \u0622\u0688\u06cc\u0648\u060c \u0648\u06cc\u0688\u06cc\u0648 \u0627\u0648\u0631 \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0627\u06cc\u06a9 \u062f\u0648\u0633\u0631\u06d2 \u06a9\u0648 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u0648\u0626\u06cc \u067e\u0644\u06af \u0627\u0646 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u06a9\u0648\u0626\u06cc \u0645\u0642\u0627\u0645\u06cc \u0627\u06cc\u067e\u0633 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u060c APIs \u0633\u06d2 \u0622\u06af\u06d2 \u06a9\u0686\u06be \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u062c\u0648 \u062a\u0645\u0627\u0645 \u0628\u0631\u0627\u0624\u0632\u0631 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 WebRTC \u0645\u06cc\u0688\u06cc\u0627 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":29443,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-29442","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts\/29442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/comments?post=29442"}],"version-history":[{"count":1,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts\/29442\/revisions"}],"predecessor-version":[{"id":29444,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts\/29442\/revisions\/29444"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/media\/29443"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/media?parent=29442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/categories?post=29442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/tags?post=29442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}