লারাভেল ব্রডকাস্টিং (Laravel Broadcasting

Web Development - লারাভেল (Laravel) - লারাভেল এডভান্স (Laravel Advance) |
9
9

লারাভেল (Laravel) ফ্রেমওয়ার্কে ব্রডকাস্টিং (Broadcasting) একটি শক্তিশালী বৈশিষ্ট্য যা রিয়েল-টাইম কমিউনিকেশন সমর্থন করে। এটি মূলত ক্লায়েন্ট এবং সার্ভারের মধ্যে দ্রুত তথ্য আদান-প্রদান করার জন্য ব্যবহৃত হয়, যেমন চ্যাট অ্যাপ্লিকেশন, নোটিফিকেশন, লাইভ ডাটা আপডেট ইত্যাদি। ব্রডকাস্টিং এর মাধ্যমে আপনি সহজেই ক্লায়েন্টদের কাছে রিয়েল-টাইম তথ্য পাঠাতে পারেন।

ব্রডকাস্টিং কী?

ব্রডকাস্টিং (Broadcasting) হল একটি প্রক্রিয়া যার মাধ্যমে সার্ভার থেকে ক্লায়েন্টে রিয়েল-টাইম তথ্য পাঠানো হয়। লারাভেল এই কাজটি করতে Pusher, Redis, এবং অন্যান্য ব্রডকাস্টিং ড্রাইভার ব্যবহার করতে সক্ষম। এর মাধ্যমে আপনি ডেটা ক্লায়েন্টকে ব্রডকাস্ট করতে পারেন, যাতে তারা অবিলম্বে তা দেখতে পারে।

লারাভেল ব্রডকাস্টিং সেটআপ

লারাভেল ব্রডকাস্টিং ব্যবহারের জন্য কিছু প্রাথমিক সেটআপ প্রয়োজন হয়। এই সেটআপটি সাধারনত তিনটি প্রধান ধাপে করা হয়:

১. ড্রাইভার কনফিগারেশন

লারাভেল বিভিন্ন ব্রডকাস্টিং ড্রাইভার (যেমন: Pusher, Redis) সমর্থন করে। ড্রাইভারটি কনফিগার করতে, প্রথমে .env ফাইল এবং config/broadcasting.php ফাইলটি এডিট করতে হবে।

config/broadcasting.php ফাইলে ড্রাইভার পরিবর্তন করতে হবে:

'default' => env('BROADCAST_DRIVER', 'pusher'),

২. পুশার (Pusher) সেটআপ

Pusher একটি জনপ্রিয় ব্রডকাস্টিং সার্ভিস, যা রিয়েল-টাইম অ্যাপ্লিকেশনগুলোতে ব্যবহৃত হয়। Pusher ব্যবহার করার জন্য আপনাকে প্রথমে Pusher অ্যাকাউন্ট তৈরি করতে হবে এবং অ্যাপ্লিকেশন ক্রিডেনশিয়ালসমূহ .env ফাইলে যোগ করতে হবে:

BROADCAST_DRIVER=pusher
PUSHER_APP_ID=your-app-id
PUSHER_APP_KEY=your-app-key
PUSHER_APP_SECRET=your-app-secret
PUSHER_APP_CLUSTER=your-app-cluster

৩. ব্রডকাস্ট ইভেন্ট তৈরি

এখন আপনাকে একটি ইভেন্ট তৈরি করতে হবে যা ব্রডকাস্ট হবে। এই ইভেন্টটি তৈরি করতে, লারাভেল কমান্ড ব্যবহার করুন:

php artisan make:event MessageSent

এই কমান্ডটি একটি নতুন ইভেন্ট তৈরি করবে। এরপর, এই ইভেন্টে ব্রডকাস্টিং যুক্ত করতে হবে। উদাহরণস্বরূপ, MessageSent ইভেন্টে ব্রডকাস্টিং যুক্ত করা:

use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class MessageSent implements ShouldBroadcast
{
    use InteractsWithSockets;

    public $message;

    public function __construct($message)
    {
        $this->message = $message;
    }

    public function broadcastOn()
    {
        return new Channel('chat');
    }
}

এই ইভেন্টটি chat চ্যানেলে ব্রডকাস্ট হবে। অর্থাৎ, যখনই এই ইভেন্টটি ট্রিগার হবে, ক্লায়েন্টরা chat চ্যানেল থেকে রিয়েল-টাইম আপডেট পাবে।

ক্লায়েন্ট-সাইডে ব্রডকাস্ট শোনার জন্য সেটআপ

এখন ক্লায়েন্ট সাইডে ব্রডকাস্ট শোনার জন্য JavaScript কোড যোগ করতে হবে। এজন্য আপনাকে লারাভেলের laravel-echo প্যাকেজ ব্যবহার করতে হবে। প্রথমে, laravel-echo এবং pusher-js ইনস্টল করতে হবে:

npm install --save laravel-echo pusher-js

তারপর, আপনার resources/js/bootstrap.js ফাইলে নিম্নলিখিত কোডটি যুক্ত করুন:

import Echo from 'laravel-echo';
import Pusher from 'pusher-js';

window.Pusher = Pusher;

const echo = new Echo({
    broadcaster: 'pusher',
    key: 'your-pusher-key',
    cluster: 'your-cluster',
    forceTLS: true
});

echo.channel('chat')
    .listen('MessageSent', (event) => {
        console.log(event.message);
    });

রিয়েল-টাইম ডাটা ব্রডকাস্ট

এখন, আপনি সার্ভার সাইড থেকে ব্রডকাস্ট ইভেন্ট ট্রিগার করতে পারেন। উদাহরণস্বরূপ, যখন একটি মেসেজ পাঠানো হয়, তখন সেই মেসেজটি ব্রডকাস্ট হবে:

event(new MessageSent($message));

এটি chat চ্যানেলে MessageSent ইভেন্ট ব্রডকাস্ট করবে, এবং ক্লায়েন্টরা সেই মেসেজটি রিয়েল-টাইমে পাবে।


লারাভেল ব্রডকাস্টিং একটি শক্তিশালী টুল যা রিয়েল-টাইম ফিচার তৈরি করতে সাহায্য করে। Pusher বা Redis ব্যবহার করে, এটি দ্রুত এবং সহজভাবে রিয়েল-টাইম কমিউনিকেশন সিস্টেম তৈরি করতে সক্ষম করে।

Content added By
Promotion