Skip to content

リアルタイム通知 ― 同期で送ったら

📖この章のキーワード
用語意味なぜ重要か
ShouldBroadcastLaravel でリアルタイム通知を非同期送信するインターフェースQueue 経由でブロードキャスト
Pub/Subメッセージの発行(Publish)と購読(Subscribe)を分離するパターンリアルタイム通知の基盤
ペイロード通知で送信するデータの中身サイズ制限(Pusher 10KB等)がある
チャネル通知の配信先を区別する仕組みfriend-added チャネル等

Phase 1: 観察

FriendAddedShouldBroadcast を実装しています。

php
// FriendAdded.php
// Label: exemplar

class FriendAdded implements ShouldBroadcast
{
    public function broadcastWith(): array
    {
        // 必要最小限のデータのみ
        return [
            'friendName' => $this->friend->name,
            'timestamp' => now()->toIso8601String(),
        ];
    }
}

Friend モデルには数十のカラムがありますが、ブロードキャストするのは 2 フィールドだけ です。


Phase 2: 判断

AI禁止ゾーン
  • もし ShouldBroadcast ではなく 同期で全クライアントに通知 していたら、何が起きますか?
  • broadcastWith()Friend モデル全体 を送ったらどうなりますか?
  • なぜ friendNametimestamp だけ を送っているのでしょうか?

AIに聞く前に、自分の頭で考えてみましょう。

テキストを入力すると有効になります