高性能:
為實時數據傳輸提供了出色的速度。可伸縮性:
>
>步驟2:安裝和配置Reverb >>使用:安裝混響
在composer create-project laravel/laravel your-chat-app-name
https://www.php.cn/link/865E434F7F4F4F4F4E0E0E0E0E0E0E0E0E0E0E0E0E0E0E938B06809) >
步驟3:運行Reverb Serverphp artisan install:broadcasting>使用以下方式啟動Reverb服務器
config/reverb.php
(使用
<code>BROADCAST_DRIVER=reverb REVERB_APP_ID=my-app-id REVERB_APP_KEY=my-app-key REVERB_APP_SECRET=my-app-secret</code>>選項或環境變量
和echo.js
>用於自定義配置。)resources/js
步驟4:數據庫設置
>在
創建數據庫文件:
php artisan reverb:start
此示例使用五個預定義的聊天室。 創建--host
模型和遷移:--port
php artisan install:broadcasting
遷移(database/migrations/*.php
)應包括:
<code>BROADCAST_DRIVER=reverb REVERB_APP_ID=my-app-id REVERB_APP_KEY=my-app-key REVERB_APP_SECRET=my-app-secret</code>
運行遷移:php artisan migrate
>將關係添加到ChatMessage
>模型(app/Models/ChatMessage.php
):
php artisan reverb:start>
步驟5:創建>事件MessageSent
>
(MessageSent
):app/Events/MessageSent.php
>
<code>DB_CONNECTION=sqlite DB_DATABASE=/path/to/database.sqlite</code>>
步驟6:創建一個私人通道路由>
在中定義私人頻道:routes/channels.php
php artisan make:model ChatMessage --migration>
步驟7:定義路由>
在>中定義必要的路由:routes/web.php
Schema::create('chat_messages', function (Blueprint $table) { $table->id(); $table->foreignId('receiver_id'); $table->foreignId('sender_id'); $table->text('text'); $table->timestamps(); });
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Factories\HasFactory; class ChatMessage extends Model { use HasFactory; protected $fillable = ['sender_id', 'receiver_id', 'text']; public function sender() { return $this->belongsTo(User::class, 'sender_id'); } public function receiver() { return $this->belongsTo(User::class, 'receiver_id'); } }
<?php namespace App\Events; use App\Models\ChatMessage; use Illuminate\Broadcasting\InteractsWithSockets; use Illuminate\Broadcasting\PrivateChannel; use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Queue\SerializesModels; class MessageSent implements ShouldBroadcastNow { use Dispatchable, InteractsWithSockets, SerializesModels; public function __construct(public ChatMessage $message) {} public function broadcastOn(): array { return [ new PrivateChannel("chat.{$this->message->receiver_id}"), ]; } }
步驟8:創建刀片視圖()resources/views/chat.blade.php
>
Broadcast::channel('chat.{id}', function ($user, $id) { return (int) $user->id === (int) $id; });
步驟9:創建vue.js component()resources/js/components/ChatComponent.vue
>
步驟10:運行項目run
,和php artisan serve
。
npm run dev
> php artisan reverb:start
源代碼:
> 這項詳細的演練提供了使用Laravel Reverb和vue.js構建實時聊天應用程序的綜合指南。 請記住調整路徑和配置以匹配您的項目設置。
以上是使用Reverb&Vue將實時聊天添加到Laravel的詳細內容。更多資訊請關注PHP中文網其他相關文章!