Elixir और Phoenix: स्केलेबल बैकएंड विकास · पाठ

Phoenix Channels से रीयल-टाइम सुविधाएँ

WebSockets पर Channels का उपयोग करके अपने Phoenix ऐप में द्विदिशीय, रीयल-टाइम संचार जोड़ें।

पाठ 4, कुल 4 में से13 चरण

Phoenix Channels से रीयल-टाइम सुविधाएँ, CoddyKit पर Elixir और Phoenix: स्केलेबल बैकएंड विकास का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Elixir और Phoenix: स्केलेबल बैकएंड विकास सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Elixir और Phoenix: स्केलेबल बैकएंड विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

चैनल क्या होते हैं

Phoenix के Channels WebSockets पर रीयल-टाइम, द्विदिश संदेश परत उपलब्ध कराते हैं (वैकल्पिक माध्यमों सहित)। ये चैट, सूचनाओं और लाइव डैशबोर्ड के लिए बिल्कुल उपयुक्त हैं।

सॉकेट परत

क्लाइंट किसी Socket से जुड़ते हैं, जो कनेक्शन का प्रमाणीकरण करता है और उसे विषयों तक पहुँचाता है। इसे आपके एंडपॉइंट में परिभाषित किया जाता है।

socket "/socket", MyAppWeb.UserSocket,
  websocket: true,
  longpoll: false

UserSocket परिभाषित करना

सॉकेट मॉड्यूल यह घोषित करता है कि कौन-से चैनल किन विषय-पैटर्न को संभालेंगे और connect कैसे किया जाएगा।

defmodule MyAppWeb.UserSocket do
  use Phoenix.Socket
  channel "room:*", MyAppWeb.RoomChannel
  def connect(_params, socket, _info), do: {:ok, socket}
  def id(_socket), do: nil
end

विषय और सदस्यताएँ

विषय room:lobby जैसी एक स्ट्रिंग होती है। क्लाइंट किसी विषय से जुड़कर उसी तक सीमित संदेश भेजते और प्राप्त करते हैं।

चैनल बनाना

चैनल मॉड्यूल join और handle_in के माध्यम से आने वाली घटनाओं को संभालता है।

defmodule MyAppWeb.RoomChannel do
  use MyAppWeb, :channel
  def join("room:" <> _id, _params, socket) do
    {:ok, socket}
  end
end

आने वाले संदेशों को संभालना

handle_in/3 क्लाइंट द्वारा भेजी गई घटनाओं पर प्रतिक्रिया देता है। :noreply लौटाएँ या भेजने वाले को उत्तर दें।

def handle_in("new_msg", %{"body" => body}, socket) do
  broadcast!(socket, "new_msg", %{body: body})
  {:noreply, socket}
end

किसी विषय पर प्रसारण

broadcast!/3 विषय के EVERY सदस्य को संदेश भेजता है, जिससे रीयल-टाइम संदेश-वितरण संभव होता है।

broadcast!(socket, "new_msg", %{body: "Hello everyone"})

भेजने वाले को उत्तर देना

केवल उस क्लाइंट को उत्तर देने के लिए, जिसने घटना भेजी है, {:reply, {:ok, payload}, socket} लौटाएँ।

def handle_in("ping", _payload, socket) do
  {:reply, {:ok, %{pong: true}}, socket}
end

सर्वर से भेजना

किसी एक जुड़े हुए क्लाइंट को संदेश भेजने के लिए push/3 का उपयोग करें, जैसे कि समवर्ती कार्य पूरा होने के बाद।

push(socket, "notification", %{text: "Job finished"})

JavaScript क्लाइंट

फ़्रंट एंड पर Phoenix JS क्लाइंट जुड़ता है, किसी विषय से जुड़ता है और घटनाओं को सुनता है।

let channel = socket.channel("room:lobby", {})
channel.join()
channel.on("new_msg", payload => console.log(payload.body))

उपस्थिति ट्रैक करना

Phoenix.Presence Channels पर आधारित है और क्लस्टर में कौन ऑनलाइन है, यह ट्रैक करता है तथा जुड़ने और हटने की घटनाओं को अपने-आप सिंक्रनाइज़ करता है।

त्वरित जाँच

Channels के अपने ज्ञान की जाँच करें।

पुनरावलोकन

आपने Channels के साथ रीयल-टाइम सुविधाएँ जोड़ीं:

  • क्लाइंट Socket से जुड़ते हैं और विषयों से जुड़ते हैं
  • चैनल join और handle_in घटनाओं को संभालते हैं
  • broadcast! संदेश सभी तक पहुँचाता है, जबकि push/reply किसी एक क्लाइंट को लक्षित करते हैं
  • उपस्थिति Channels के ऊपर ऑनलाइन उपयोगकर्ताओं को ट्रैक करती है
शुरुआत निःशुल्क

एआई शिक्षक के साथ Elixir सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “Phoenix Channels से रीयल-टाइम सुविधाएँ” पाठ निःशुल्क है?

हाँ—“Phoenix Channels से रीयल-टाइम सुविधाएँ” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Elixir और Phoenix: स्केलेबल बैकएंड विकास पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Elixir और Phoenix: स्केलेबल बैकएंड विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Phoenix Channels से रीयल-टाइम सुविधाएँ” में मैं क्या सीखूँगा?

WebSockets पर Channels का उपयोग करके अपने Phoenix ऐप में द्विदिशीय, रीयल-टाइम संचार जोड़ें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Elixir और Phoenix: स्केलेबल बैकएंड विकास का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Elixir और Phoenix: स्केलेबल बैकएंड विकास शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Elixir और Phoenix: स्केलेबल बैकएंड विकास शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“Phoenix Channels से रीयल-टाइम सुविधाएँ” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Elixir और Phoenix: स्केलेबल बैकएंड विकास पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Elixir और Phoenix: स्केलेबल बैकएंड विकास पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Phoenix परियोजना सेटअप और संरचना
  2. रूटिंग, नियंत्रक और Plugs
  3. दृश्य, टेम्पलेट और LiveView की मूल बातें
  4. Phoenix Channels से रीयल-टाइम सुविधाएँ
← Elixir और Phoenix: स्केलेबल बैकएंड विकास पर वापस जाएँ