Veritabanı ile Entegrasyon Laravel WebSocket: Gerçek Zamanlı Veri Yönetimi

Bir veritabanıyla entegrasyon, Laravel WebSocket Sohbet, anlık bildirimler ve olay izleme gibi gerçek zamanlı uygulamalar oluşturmanın çok önemli bir parçasıdır. Bir veritabanı ile birleştirerek WebSocket, gerçek zamanlı verileri etkin bir şekilde depolayabilir ve yönetebiliriz. Laravel WebSocket Bir veritabanıyla nasıl entegre edileceği aşağıda açıklanmıştır .

1. Adım: Laravel WebSocket Paketi Kurun

İlk olarak, paketi kurun ve yapılandırın laravel-websockets. Paketi yüklemek için Composer'ı kullanın:

composer require beyondcode/laravel-websockets

Kurulduktan sonra yapılandırma dosyalarını yayınlamanız ve gerekli görevleri gerçekleştirmeniz gerekir:

php artisan vendor:publish --tag=websockets-config  
php artisan migrate  

2. Adım: Mesajlar için Veritabanı Tablosu Oluşturun

Mesajları depolamak için veritabanında bir tablo oluşturacağız. Tabloyu oluşturmak için aşağıdaki komutu kullanın messages:

php artisan make:model Message -m

migration Komutu çalıştırdıktan sonra, dizinde oluşturulmuş bir dosya göreceksiniz database/migrations. Dosyayı açın migration ve tablonun yapısını tanımlayın 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 Veritabanında tablo oluşturmak için komutu çalıştırın:

php artisan migrate

3. Adım: İleti Kalıcılığını İşleme WebSocket

Bir kullanıcı bir mesaj gönderdiğinde, mesajı işlememiz ve veritabanında kalıcı hale getirmemiz gerekir. Laravel Mesaj gönderildi olayında, mesajı göndermek WebSocket ve aynı anda mesajı veri tabanına kaydetmek için Broadcasting'i kullanabilirsiniz .

// 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();  
}  

Çözüm

Bir veritabanıyla entegrasyon, Laravel WebSocket gerçek zamanlı verileri etkili bir şekilde depolamanıza ve yönetmenize olanak tanır. Bir veritabanıyla birleştirerek WebSocket Chat, anlık bildirimler ve olay izleme gibi karmaşık gerçek zamanlı uygulamaları esnek ve güçlü bir şekilde oluşturabilirsiniz.