Elixir & Phoenix: Pembangunan Bahagian Belakang Boleh Skala · Pelajaran

Ciri Masa Nyata dengan Saluran Phoenix

Tambahkan komunikasi dua hala masa nyata pada aplikasi Phoenix anda menggunakan Channels melalui WebSockets.

Pelajaran 4 daripada 413 langkah

Ciri Masa Nyata dengan Saluran Phoenix ialah pelajaran Elixir & Phoenix: Pembangunan Bahagian Belakang Boleh Skala percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Elixir & Phoenix: Pembangunan Bahagian Belakang Boleh Skala, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Elixir & Phoenix: Pembangunan Bahagian Belakang Boleh Skala merangkumi sejumlah 4 pelajaran.

Apakah Saluran?

Saluran Phoenix menyediakan lapisan pemesejan dua hala masa nyata melalui WebSockets (dengan pilihan sandaran). Ia amat sesuai untuk sembang, pemberitahuan dan papan pemuka langsung.

Lapisan Soket

Klien bersambung kepada Soket, yang mengesahkan sambungan dan menghalakannya kepada topik. Ia ditakrifkan dalam titik akhir Anda.

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

Mentakrifkan UserSocket

Modul soket mengisytiharkan saluran yang mengendalikan corak topik tertentu serta cara untuk 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

Topik dan Langganan

Topik ialah rentetan seperti room:lobby. Klien menyertai topik untuk menghantar dan menerima mesej yang terhad kepada topik tersebut.

Mencipta Saluran

Modul saluran mengendalikan join dan peristiwa masuk dengan handle_in.

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

Mengendalikan Mesej Masuk

handle_in/3 bertindak balas terhadap peristiwa yang dihantar oleh klien. Pulangkan :noreply atau balas kepada pengirim.

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

Menyiarkan kepada Topik

broadcast!/3 menghantar mesej kepada setiap pelanggan topik, sekali gus membolehkan penyebaran masa nyata.

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

Membalas Pengirim

Pulangkan {:reply, {:ok, payload}, socket} untuk menjawab hanya klien yang menghantar peristiwa tersebut.

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

Menolak dari Pelayan

Gunakan push/3 untuk menghantar mesej kepada satu klien yang bersambung, contohnya selepas kerja async selesai.

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

Klien JavaScript

Pada bahagian hadapan, klien JS Phoenix bersambung, menyertai topik dan mendengar peristiwa.

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

Menjejak Kehadiran

Phoenix.Presence dibina berasaskan Saluran untuk menjejak pengguna yang berada dalam talian merentas kelompok, serta menyegerakkan peristiwa penyertaan dan keluar secara automatik.

Semakan Pantas

Uji pengetahuan Anda tentang Saluran.

Imbas Kembali

Anda menambahkan ciri masa nyata dengan Saluran:

  • Klien bersambung kepada Soket dan menyertai topik
  • Saluran mengendalikan peristiwa join dan handle_in
  • broadcast! menyebarkan mesej, manakala push/reply menyasari satu klien
  • Kehadiran menjejak pengguna dalam talian berasaskan Saluran
Percuma untuk bermula

Pelajari Elixir dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Ciri Masa Nyata dengan Saluran Phoenix” percuma?

Ya — teks penuh “Ciri Masa Nyata dengan Saluran Phoenix” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Elixir &amp; Phoenix: Pembangunan Bahagian Belakang Boleh Skala, tingkat taraf kepada CoddyKit PRO. Kursus Elixir &amp; Phoenix: Pembangunan Bahagian Belakang Boleh Skala merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Ciri Masa Nyata dengan Saluran Phoenix”?

Tambahkan komunikasi dua hala masa nyata pada aplikasi Phoenix anda menggunakan Channels melalui WebSockets. Anda berlatih Elixir &amp; Phoenix: Pembangunan Bahagian Belakang Boleh Skala menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Elixir &amp; Phoenix: Pembangunan Bahagian Belakang Boleh Skala?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Elixir &amp; Phoenix: Pembangunan Bahagian Belakang Boleh Skala di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Ciri Masa Nyata dengan Saluran Phoenix” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Elixir &amp; Phoenix: Pembangunan Bahagian Belakang Boleh Skala ini?

Ya. Setiap pelajaran Elixir &amp; Phoenix: Pembangunan Bahagian Belakang Boleh Skala menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Persediaan dan Struktur Projek Phoenix
  2. Penghalaan, Pengawal dan Plag
  3. Paparan, Templat dan Asas LiveView
  4. Ciri Masa Nyata dengan Saluran Phoenix
← Kembali ke Elixir &amp; Phoenix: Pembangunan Bahagian Belakang Boleh Skala