Rumah  >  Artikel  >  rangka kerja php  >  Pembangunan Laravel: Bagaimana untuk menggunakan Penyiaran Laravel untuk melaksanakan komunikasi soket web?

Pembangunan Laravel: Bagaimana untuk menggunakan Penyiaran Laravel untuk melaksanakan komunikasi soket web?

PHPz
PHPzasal
2023-06-13 23:13:461431semak imbas

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.

  1. Melaksanakan Penyiaran Laravel

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.

  1. Gunakan Pusher untuk penyiaran

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.

  1. Penyiaran menggunakan Redis

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.

  1. Menggunakan Penyiaran Laravel di bahagian hadapan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn