ホームページ >バックエンド開発 >PHPチュートリアル >Reverb&Vueを使用してLaravelにリアルタイムチャットを追加する
Laravelは、強力なWebsocketサーバーであるReverbを使用してリアルタイム機能を強化します。 この公式Laravelパッケージは、リアルタイム機能の統合を簡素化し、ユーザーの相互作用を大幅に改善します。
laravelリバーブとは?
リバーブは、Laravelアプリケーションとそのユーザーの間のブリッジとして機能し、WebSocketsを介した双方向のリアルタイム通信を可能にします。これにより、フルページのリロードなしで動的な更新が可能になり、より応答性の高いユーザーエクスペリエンスが作成されます。 Laravel Reverbの重要な機能:高パフォーマンス:
リアルタイムのデータ転送に特別な速度を届けますステップ2:リバーブ
をインストールして構成します
:を使用してリバーブをインストールします リバーブを
に設定し、次の環境変数を設定します。composer create-project laravel/laravel your-chat-app-name
ファイル()を参照してください ステップ3:リバーブサーバーの実行
リバーブサーバーを起動してください:
php artisan install:broadcasting
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>オプションまたは環境変数を使用しますステップ4:データベースのセットアップ
データベースを
ファイルで構成します。 (SQLiteを使用した例):
php artisan reverb:startデータベースファイルを作成します:
--host
--port
この例では、5つの事前定義されたチャットルームを使用しています。 REVERB_SERVER_HOST
モデルと移行を作成します:REVERB_SERVER_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
:
で必要なルートを定義します
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}"), ]; } }
resources/views/chat.blade.php
Broadcast::channel('chat.{id}', function ($user, $id) { return (int) $user->id === (int) $id; });)
を作成します
resources/js/components/ChatComponent.vue
(vue.jsコンポーネントコードは、元のプロンプトで提供されています)
ステップ10:プロジェクトを実行します
run、
、および。php artisan serve
npm run dev
php artisan reverb:start
ソースコード:
この詳細なウォークスルーは、Laravel ReverbとVue.JSを使用してリアルタイムチャットアプリケーションを構築するための包括的なガイドを提供します。 プロジェクトのセットアップに一致するようにパスと構成を調整することを忘れないでください。
以上がReverb&Vueを使用してLaravelにリアルタイムチャットを追加するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。