与数据库集成 Laravel WebSocket :实时数据管理

与数据库集成 Laravel WebSocket 是构建实时应用程序(例如聊天、即时通知和事件跟踪)的关键部分。 通过与数据库结合 WebSocket,我们可以有效地存储和管理实时数据。 Laravel WebSocket 以下是与数据库 集成的方法。

第1步:安装 Laravel WebSocket 包

首先,安装并配置 laravel-websockets 软件包。 使用 Composer 安装包:

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,您可以以灵活而强大的方式构建复杂的实时应用程序,例如聊天、即时通知和事件跟踪。