চ্যাট, তাত্ক্ষণিক বিজ্ঞপ্তি এবং ইভেন্ট ট্র্যাকিংয়ের মতো রিয়েল-টাইম অ্যাপ্লিকেশন তৈরির জন্য একটি ডাটাবেসের সাথে একীভূত করা Laravel WebSocket একটি গুরুত্বপূর্ণ অংশ। WebSocket একটি ডাটাবেসের সাথে একত্রিত করে, আমরা কার্যকরভাবে রিয়েল-টাইম ডেটা সঞ্চয় এবং পরিচালনা করতে পারি। এখানে কিভাবে Laravel WebSocket একটি ডাটাবেসের সাথে সংহত করতে হয়।
ধাপ 1: Laravel WebSocket প্যাকেজ ইনস্টল করুন
প্রথমত, প্যাকেজটি ইনস্টল এবং কনফিগার করুন laravel-websockets
। প্যাকেজ ইনস্টল করতে কম্পোজার ব্যবহার করুন:
composer require beyondcode/laravel-websockets
একবার ইনস্টল হয়ে গেলে, আপনাকে কনফিগারেশন ফাইলগুলি প্রকাশ করতে হবে এবং প্রয়োজনীয় কাজগুলি সম্পাদন করতে হবে:
php artisan vendor:publish --tag=websockets-config
php artisan migrate
ধাপ 2: বার্তাগুলির জন্য ডাটাবেস টেবিল তৈরি করুন
আমরা বার্তা সংরক্ষণ করার জন্য ডাটাবেসে একটি টেবিল তৈরি করব। টেবিল তৈরি করতে নিম্নলিখিত কমান্ড ব্যবহার করুন messages
:
php artisan make:model Message -m
কমান্ড চালানোর পরে, আপনি migration ডিরেক্টরিতে তৈরি একটি ফাইল দেখতে পাবেন database/migrations
। ফাইলটি খুলুন migration এবং টেবিলের গঠন সংজ্ঞায়িত করুন messages
:
// database/migrations/xxxx_xx_xx_create_messages_table.php
public function up()
{
Schema::create('messages', function(Blueprint $table) {
$table->id();
$table->unsignedBigInteger('user_id');
$table->text('content');
$table->timestamps();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});
}
migration ডাটাবেসে টেবিল তৈরি করতে কমান্ডটি চালান:
php artisan migrate
ধাপ 3: এর মাধ্যমে বার্তা অধ্যবসায় পরিচালনা করা WebSocket
যখন একজন ব্যবহারকারী একটি বার্তা পাঠান, তখন আমাদের ডাটাবেসে বার্তাটি পরিচালনা করতে হবে এবং ধরে রাখতে হবে। বার্তা-প্রেরিত ইভেন্টে, আপনি Laravel বার্তাটি পাঠাতে WebSocket এবং একই সাথে ডাটাবেসে বার্তা সংরক্ষণ করতে সম্প্রচার ব্যবহার করতে পারেন।
// app/Events/MessageSent.php
public function broadcastOn()
{
return new Channel('chat');
}
public function broadcastWith()
{
return [
'message' => $this->message,
'user' => $this->user,
];
}
// app/Listeners/SaveMessage.php
public function handle(MessageSent $event)
{
$message = new Message();
$message->user_id = $event->user->id;
$message->content = $event->message;
$message->save();
}
উপসংহার
একটি ডাটাবেসের সাথে সংহত করা Laravel WebSocket আপনাকে কার্যকরভাবে রিয়েল-টাইম ডেটা সঞ্চয় এবং পরিচালনা করতে দেয়। একটি ডাটাবেসের সাথে একত্রিত করে WebSocket, আপনি একটি নমনীয় এবং শক্তিশালী পদ্ধতিতে চ্যাট, তাত্ক্ষণিক বিজ্ঞপ্তি এবং ইভেন্ট ট্র্যাকিংয়ের মতো জটিল রিয়েল-টাইম অ্যাপ্লিকেশন তৈরি করতে পারেন।