Ciri Masa Nyata dengan Saluran Phoenix
Tambahkan komunikasi dua hala masa nyata pada aplikasi Phoenix anda menggunakan Channels melalui WebSockets.
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: falseMentakrifkan 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
endTopik 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
endMengendalikan 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}
endMenyiarkan 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}
endMenolak 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
joindanhandle_in broadcast!menyebarkan mesej, manakalapush/replymenyasari satu klien- Kehadiran menjejak pengguna dalam talian berasaskan Saluran
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 & Phoenix: Pembangunan Bahagian Belakang Boleh Skala, tingkat taraf kepada CoddyKit PRO. Kursus Elixir & 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 & 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 & Phoenix: Pembangunan Bahagian Belakang Boleh Skala?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Elixir & 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 & Phoenix: Pembangunan Bahagian Belakang Boleh Skala ini?
Ya. Setiap pelajaran Elixir & 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
- Persediaan dan Struktur Projek Phoenix
- Penghalaan, Pengawal dan Plag
- Paparan, Templat dan Asas LiveView
- Ciri Masa Nyata dengan Saluran Phoenix