ホームページ PHPフレームワーク Laravel Laravel でのイベント ブロードキャスト: リアルタイム通知とステータス更新の実装

Laravel でのイベント ブロードキャスト: リアルタイム通知とステータス更新の実装

Aug 25, 2023 pm 02:46 PM
放送 通知する ララベルイベント ステータスアップデート

Laravel でのイベント ブロードキャスト: リアルタイム通知とステータス更新の実装

Laravel でのイベント ブロードキャスト: リアルタイム通知とステータス更新の実装

はじめに:
最新の Web アプリケーション開発では、リアルタイム通知とステータス更新が必要になります。ますます重要なニーズとなっています。ブログ アプリケーションで、新しいコメントや「いいね!」があったときに、より良いユーザー エクスペリエンスを提供するためにユーザーにすぐに通知したいと想像してください。 Laravel フレームワークは、この要件を処理するための非常に強力な機能であるイベント ブロードキャストを提供します。この記事では、Laravel のイベント ブロードキャスト機能を使用して、リアルタイムの通知とステータス更新を実現する方法を学びます。

  1. イベントとリスナーの作成
    最初に、イベントと対応するリスナーを作成する必要があります。 Event は実際には、特定のイベントが発生したことを示すために使用される単純な PHP クラスです。リスナーは、このイベントを処理し、対応する操作を実行するために使用されます。

以下は、コメント イベントと対応するリスナーの作成例です。

<?php

namespace AppEvents;

use IlluminateContractsBroadcastingShouldBroadcast;
use IlluminateFoundationEventsDispatchable;
use IlluminateQueueSerializesModels;

class NewComment implements ShouldBroadcast
{
    use Dispatchable, SerializesModels;

    public $comment;

    /**
     * Create a new event instance.
     *
     * @param $comment
     * @return void
     */
    public function __construct($comment)
    {
        $this->comment = $comment;
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return IlluminateBroadcastingChannel|array
     */
    public function broadcastOn()
    {
        return new Channel('comments');
    }
}
ログイン後にコピー

上記のコードでは、NewComment イベントは ShouldBroadcast# を実装します。 ## インターフェース。イベントをブロードキャストする必要があることを Laravel フレームワークに指示します。イベントのコンストラクターは、コメント オブジェクトをパラメーターとして受け取り、それを $comment プロパティに割り当てます。 broadcastOn メソッドはブロードキャスト チャネル インスタンスを返します。これは、イベントを comments チャネルでブロードキャストする必要があることを意味します。

以下はコメント イベントを処理するリスナーの例です:

<?php

namespace AppListeners;

use AppEventsNewComment;
use IlluminateContractsQueueShouldQueue;
use IlluminateQueueInteractsWithQueue;

class SendCommentNotification implements ShouldQueue
{
    use InteractsWithQueue;

    /**
     * Handle the event.
     *
     * @param  NewComment  $event
     * @return void
     */
    public function handle(NewComment $event)
    {
        // 处理发送通知的逻辑
        // 例如,发送邮件通知用户
    }
}
ログイン後にコピー

上記のコードでは、

SendCommentNotification リスナーは ShouldQueue インターフェイスを実装します。 、リスナーをキューに入れて非同期に実行できることを示します。 handle メソッドでは、ユーザーに通知するための電子メールの送信など、イベントを処理するためのロジックを作成できます。

    イベントとリスナーの登録
  1. 次に、Laravel フレームワークがイベントを正しくトリガーし、対応するリスナーを呼び出せるように、イベントとリスナーを登録する必要があります。

app/Providers/EventServiceProvider.php ファイルを開き、$listen 配列に次のコードを追加します。上記のコードは、NewComment

イベントが発生すると、処理のために

SendCommentNotification リスナーが呼び出されるということを意味します。 イベント ブロードキャストの構成

次に、イベント ブロードキャスト用のドライバーを構成する必要があります。 Laravel フレームワークは、イベント ブロードキャスト ドライバーとしてデフォルトで
    redis
  1. を使用します。
    .env ファイルを開いて、次の構成が正しく設定されていることを確認します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>protected $listen = [ 'AppEventsNewComment' =&gt; [ 'AppListenersSendCommentNotification', ], ];</pre><div class="contentsignin">ログイン後にコピー</div></div>
  2. イベント ブロードキャストの使用
これで、イベント ブロードキャストを使用して、実際の時間通知とステータス更新。コントローラーでイベントをトリガーする方法を示す簡単な例を次に示します。
  1. BROADCAST_DRIVER=redis
    ログイン後にコピー

    上記のコードでは、まずコメント オブジェクトを作成し、それを
  2. event
ヘルパーに渡します。 function

NewComment イベントをトリガーし、コメント オブジェクトをパラメーターとして渡します。このようにして、コメントが正常に作成されると、Laravel フレームワークは指定されたチャネル (この場合は comments チャネル) にイベントを自動的にブロードキャストします。 フロントエンドのリアルタイム更新

最後に、フロントエンド ページでリアルタイムでイベント ブロードキャストをリッスンし、対応する操作を実行する必要があります。 Laravel フレームワークは、この関数の実装に役立つ
    Echo
  1. という JavaScript ライブラリを提供します。まず、関連する JS ファイルをフロントエンド ページに導入する必要があります:
    <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>&lt;?php namespace AppHttpControllers; use AppEventsNewComment; use AppModelsComment; use IlluminateHttpRequest; class CommentController extends Controller { public function create(Request $request) { $comment = Comment::create([ 'content' =&gt; $request-&gt;input('content'), 'user_id' =&gt; auth()-&gt;user()-&gt;id, // 其他属性 ]); event(new NewComment($comment)); // 你的其他代码逻辑 return response()-&gt;json(['message' =&gt; 'Comment created successfully']); } }</pre><div class="contentsignin">ログイン後にコピー</div></div> 次に、JavaScript コードで、次の方法でイベント ブロードキャストをリッスンできます:
  2. <script src="{{asset('js/app.js')}}"></script>
    ログイン後にコピー
    上記のコードでは、

    Echo.channel

    メソッドを通じて、指定されたチャネル (この例では、

    comments チャネル) をリッスンします。 listen メソッドを呼び出すときは、リッスンするイベント タイプを指定する必要があります。ここでは NewComment です。 listen

    メソッドでは、ページ上に新しいコメントの内容を表示するなど、受信したイベントを処理するロジックを作成できます。

    結論: Laravelのイベントブロードキャスト機能を利用することで、リアルタイム通知やステータス更新のニーズを簡単に実現できます。対応するイベントとリスナーを作成し、コントローラーでイベントをトリガーするだけです。イベント ブロードキャストを構成し、フロントエンド ページでイベントをリッスンすることで、アプリケーションにリアルタイムの通知機能とステータス更新機能を実装できます。この記事がお役に立てば幸いです!

    以上がLaravel でのイベント ブロードキャスト: リアルタイム通知とステータス更新の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

iPhoneの通知を消去する方法 iPhoneの通知を消去する方法 Feb 15, 2024 pm 06:10 PM

通知は iPhone で最も強力なスイートではありませんが、最近の iOS アップデートで、Apple は通知の表示方法を微調整しました。新しい iOS バージョンでは、ユーザーのエクスペリエンスを向上させるために、通知センターを介したアラートの表示が最小限に抑えられています。この記事では、さまざまな方法で iPhone の通知を消去するのに役立ちます。 iPhone で受信通知バナーをオフにする方法 ホーム画面にいるとき、またはアプリをアクティブに使用しているときは、この機能を無効にしない限り、すべての通知が上部にバナーとして表示されます。現在のタスクを中断せずに後で通知を確認したい場合は、バナーを上にスワイプして通知を閉じます。これにより、受信した通知が通知センターに移動され、次のことが可能になります。

Windows 11 ユーザー ガイド: 広告ポップアップを無効にする方法 Windows 11 ユーザー ガイド: 広告ポップアップを無効にする方法 Sep 22, 2023 pm 07:21 PM

Microsoft の Windows 11 オペレーティング システムでは、通知システムを使用してコンピュータ上に提案がポップアップとして定期的に表示される場合があります。この提案システムは、もともと Windows 11 のワークフローを改善するためのヒントや提案をユーザーに提供するために設計されましたが、現在ではほぼ完全に Microsoft のサービスと製品を宣伝する広告システムに変わりました。提案ポップアップでは、Microsoft 365 サブスクリプションをユーザーに宣伝したり、Android スマートフォンをデバイスにリンクしたり、バックアップ ソリューションをセットアップしたりすることを提案する場合があります。これらのポップアップが煩わしい場合は、システムを調整して完全に無効にすることができます。次のガイドでは、Microsoft の Windows 11 オペレーティング システムを実行しているデバイスでポップアップを無効にするための推奨事項を示します。

iPhone で Apple TV キーボードのリマインダーをオフにする方法 iPhone で Apple TV キーボードのリマインダーをオフにする方法 Nov 30, 2023 pm 11:41 PM

AppleTV では、AppleTV Remote を使用してテキストを入力したくない場合は、近くにある iPhone または iPad を使用して入力できます。 AppleTV にテキストフィールドが表示されると、iPhone または iPad に通知が表示され、通知をタップした後、iOS デバイスのスクリーンキーボードを使用して AppleTV にテキストを入力できます。これらの通知が煩わしいと感じる場合は、iPhone または iPad で通知を無効にすることができます (家に AppleTV が数台あり、子供がいる場合は、その意味がわかるでしょう)。 iOS/iPadOS 15.1 以降を実行している場合、それらを無効にする方法は次のとおりです。 iPhone または iPad で起動する

Web サイトをスタンドアロンの Mac アプリに変換する方法 Web サイトをスタンドアロンの Mac アプリに変換する方法 Oct 12, 2023 pm 11:17 PM

macOS Sonoma および Safari 17 では、Web サイトを「Web アプリ」に変換できます。Web アプリは Mac のドックに常駐し、ブラウザーを開かずに他のアプリと同様にアクセスできます。それがどのように機能するかを学び続けてください。 Apple の Safari ブラウザの新しいオプションのおかげで、頻繁にアクセスするインターネット上の Web サイトを、Mac のドックに常駐していつでもアクセスできるスタンドアロンの「Web アプリ」に変えることができるようになりました。この Web アプリは、他のアプリと同様に Mission Control および Stage Manager で動作し、Launchpad または SpotlightSearch 経由で開くこともできます。あらゆるウェブサイトを次のようなものに変える方法

uniapp アプリケーションでメッセージのプッシュと通知を実装する方法 uniapp アプリケーションでメッセージのプッシュと通知を実装する方法 Oct 18, 2023 am 09:19 AM

Uniapp は、複数のプラットフォームで同時に実行されるアプリケーションの開発に使用できる、Vue.js に基づくクロスプラットフォーム開発フレームワークです。 Uniappでは、メッセージプッシュ機能や通知機能を実装する際に、対応するプラグインやAPIをいくつか提供していますので、これらのプラグインやAPIを利用してメッセージプッシュ機能や通知機能を実装する方法を紹介します。 1. メッセージプッシュ メッセージプッシュ機能を実装するには、Uniapp が提供する uni-push プラグインを使用します。このプラグインは Tencent Cloud Push Service に基づいており、複数のプラットフォームにメッセージをプッシュできます

Beegoフレームワークを使用してカスタムエラー通知を実装する方法 Beegoフレームワークを使用してカスタムエラー通知を実装する方法 Jun 03, 2023 pm 12:31 PM

Beego フレームワークを使用して Web アプリケーションを構築するプロセスでは、エラー通知の重要性は自明です。コードを書くとき、私たちは通常、さまざまな異常な状況に対処しますが、未知のエラーについては、時間内に通知されることが望まれます。この記事では、Beego フレームワークを使用してカスタム エラー通知を実装する方法を詳しく紹介します。 1. エラー処理の基本知識 Beego フレームワークを使用してカスタム エラー通知を実装する方法を紹介する前に、いくつかの基本知識を理解する必要があります。まず、エラー処理の種類と選択方法を知る必要があります。

自宅、別の場所、タイマーでのチェックインの使用方法 自宅、別の場所、タイマーでのチェックインの使用方法 Mar 24, 2024 am 09:31 AM

目的地に到着したことを他の人に伝える方法 無事に目的地に到着したことを他の人に伝える「チェックイン」は最も一般的な方法であり、操作も簡単です。旅の次の段階に進む前に設定する手順は次のとおりです。メッセージを開いて、チェックインを送信したい相手と会話を開始します。メッセージ フィールドの横にあるプラス (+) アイコンをクリックします。チェックインをクリックします。プロンプトの下部にある [編集] をクリックします。宛先を入力します。右上の「完了」を選択して「チェックイン」を送信してください。「目的地を入力する際、車、公共交通機関、徒歩など、ニーズに応じてさまざまな移動手段を選択できます」 。デバイスが目的地に到着するまでにかかる時間を正確に推定できるように、使用しているデバイスを正しく選択してください。これにより、旅行をより適切に計画し、より便利に目的地に到着することができます。

Swoole が Websocket のブロードキャスト機能をサポートする仕組み Swoole が Websocket のブロードキャスト機能をサポートする仕組み Jun 25, 2023 pm 02:49 PM

インターネット技術の継続的な発展により、Websocket は非常に人気のある通信プロトコルになりました。高性能ネットワーク通信フレームワークとして、Swoole は Websocket の強力なサポートも開始しました。この記事では、SwooleがWebsocketのブロードキャスト機能をどのようにサポートしているかを詳しく紹介します。 Websocket 通信プロトコルの特徴 Swoole が Websocket のブロードキャスト機能をどのようにサポートしているかを説明する前に、Websocket 通信について簡単に紹介します。

See all articles