Rumah > Artikel > rangka kerja php > Pembangunan Laravel: Bagaimana untuk menggunakan Penyiaran Laravel untuk melaksanakan komunikasi soket web?
Laravel ialah rangka kerja PHP yang berkuasa Penggunaannya yang meluas dan sintaks yang elegan menjadikannya salah satu rangka kerja pilihan untuk pembangunan PHP. Dalam pembangunan web, komunikasi masa nyata adalah penting untuk banyak aplikasi. Dalam Laravel, soket web ialah cara biasa untuk mencapai komunikasi masa nyata. Penyiaran Laravel ialah alat biasa untuk melaksanakan komunikasi soket web dengan mudah. Dalam artikel ini, saya akan memperkenalkan cara menggunakan Penyiaran Laravel untuk melaksanakan komunikasi soket web.
Dalam Laravel, anda perlu menggunakan beberapa jenis pemacu siaran, seperti Pusher atau Redis, untuk melaksanakan Penyiaran Laravel. Sebelum melakukan ini, anda perlu menggunakan Komposer untuk memasang beberapa pakej yang diperlukan, seperti:
composer require predis/predis pusher/pusher-php-server guzzlehttp/guzzle
Pakej ini akan digunakan untuk penyiaran menggunakan Pusher atau Redis.
Untuk menggunakan Pusher untuk penyiaran, anda perlu memperkenalkan pakej kebergantungan Pusher dalam Laravel dan tetapkan pembolehubah persekitaran berkaitan Pusher dalam .env
fail. Selepas memasang Pusher, dalam fail siaran /config/broadcasting.php
, tetapkan pilihan pusher
kepada benar. Seterusnya, kita boleh menggunakan kod berikut untuk menyiarkan:
use IlluminateSupportFacadesBroadcast; Broadcast::channel('chat.{roomId}', function ($user, $roomId) { return true; });
Dalam contoh ini, kaedah Broadcast::channel
bermakna hanya pengguna dalam sembang bilik boleh menerima siaran. Ini ialah cara asas untuk menggunakan Pusher dengan Laravel Broadcasting.
Penyiaran menggunakan Redis adalah serupa dengan menggunakan Pusher. Dalam Laravel, pembolehubah persekitaran berkaitan Redis perlu ditetapkan dalam fail .env
. Seterusnya, dalam fail siaran /config/broadcasting.php
, tetapkan pilihan redis
kepada benar dan konfigurasikan parameter berkaitan redis.
Dalam fail siaran, terdapat kelas PresenceChannel
yang menyimpan maklumat pengguna seperti nama pengguna dan ID dalam redis apabila pengguna menyambung ke saluran. Anda boleh menggunakan kod berikut untuk melaksanakan fungsi ini:
Broadcast::channel('chat.{roomId}', function ($user, $roomId) { return [ 'id' => $user->id, 'name' => $user->name ]; });
Kod di atas dinyatakan sebagai menghantar data JSON ke redis antara pengguna dalam bilik sembang. Ia mengandungi sepasang id dan nama pengguna nilai kunci untuk memberitahu pengguna lain siapa yang berada di dalam bilik.
Sekarang kita telah melaksanakan penyiaran dalam Laravel, seterusnya kita perlu menggunakan fungsi penyiaran di bahagian hadapan. Dalam Laravel, anda boleh menggunakan Laravel Echo untuk melaksanakan fungsi ini dengan mudah. Laravel Echo ialah perpustakaan untuk memindahkan data antara aplikasi dan pelayan soket web. Laravel Echo boleh ditambah pada aplikasi menggunakan kod berikut:
import Echo from 'laravel-echo'; window.Echo = new Echo({ broadcaster: 'pusher', key: process.env.MIX_PUSHER_APP_KEY, cluster: process.env.MIX_PUSHER_APP_CLUSTER, encrypted: true });
Dalam kod di atas, kami menggunakan Pusher sebagai pemacu siaran, menetapkan parameter berkaitan Pusher, dan kemudian perlu menggunakan Laravel Echo di hadapan- kod tamat untuk mendengar acara penyiaran. Contohnya:
Echo.channel(`chat.${roomId}`) .listen('NewMessage', (e) => { console.log(e); });
Kod di atas bermakna apabila terdapat mesej baharu, kandungan mesej dikeluarkan dalam konsol. Kita perlu melaksanakan logik menerima mesej siaran dalam acara NewMessage
. Inilah cara untuk melaksanakan komunikasi soket web menggunakan Penyiaran Laravel.
Ringkasan
Dalam artikel ini, kami memperkenalkan cara menggunakan Penyiaran Laravel untuk melaksanakan komunikasi soket web. Sebelum melaksanakan Penyiaran Laravel, kami perlu memasang perpustakaan dan pakej yang diperlukan terlebih dahulu, kemudian gunakan pemacu Pusher atau Redis untuk menyiarkan. Akhir sekali, gunakan Laravel Echo di bahagian hadapan untuk mendengar acara penyiaran. Harap artikel ini dapat membantu anda memahami cara melaksanakan komunikasi soket web menggunakan Penyiaran Laravel.
Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk menggunakan Penyiaran Laravel untuk melaksanakan komunikasi soket web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!