検索
ホームページPHPフレームワークLaravelLaravel 開発: Laravel Broadcasting を使用して WebSocket 通信を実装するにはどうすればよいですか?

Laravel は強力な PHP フレームワークであり、広く使用されており、洗練された構文により、PHP 開発に推奨されるフレームワークの 1 つとなっています。 Web 開発では、多くのアプリケーションにとってリアルタイム通信が重要です。 Laravel では、WebSocket はリアルタイム通信を実現する一般的な方法です。 Laravel Broadcasting は、WebSocket 通信を簡単に実装するための一般的なツールです。この記事では、Laravel Broadcastingを使用してWebSocket通信を実装する方法を紹介します。

  1. Laravel ブロードキャストの実装

Laravel では、Pusher や Redis などの何らかのブロードキャスト ドライバーを使用して、Laravel ブロードキャストを実装する必要があります。その前に、Composer を使用して、次のような必要なパッケージをインストールする必要があります。

composer require predis/predis pusher/pusher-php-server guzzlehttp/guzzle

これらのパッケージは、Pusher または Redis を使用したブロードキャストに使用されます。

  1. ブロードキャストに Pusher を使用する

Pusher をブロードキャストに使用するには、Laravel に Pusher 依存関係パッケージを導入し、.env## で Pusher を設定する必要があります。 # ファイル関連の環境変数。 Pusher をインストールした後、ブロードキャスト ファイル /config/broadcasting.phppusher オプションを true に設定します。次に、次のコードを使用してブロードキャストできます。

use IlluminateSupportFacadesBroadcast;
Broadcast::channel('chat.{roomId}', function ($user, $roomId) {
     return true;
});

この例では、

Broadcast::channel メソッドは、ルーム チャット内のユーザーのみがブロードキャストを受信できることを示しています。これは、Laravel Broadcasting で Pusher を使用する基本的な方法です。

    Redis を使用したブロードキャスト
Redis を使用したブロードキャストは、Pusher を使用した場合と似ています。 Laravel では、Redis 関連の環境変数を

.env ファイルに設定する必要があります。次に、ブロードキャスト ファイル /config/broadcasting.phpredis オプションを true に設定し、redis 関連のパラメーターを構成します。

ブロードキャスト ファイルには、ユーザーがチャンネルに接続したときにユーザー名や ID などのユーザー情報を Redis に保存する

PresenceChannel クラスがあります。この関数を実装するには、次のコードを使用できます。

Broadcast::channel('chat.{roomId}', function ($user, $roomId) {
    return [
        'id' => $user->id,
        'name' => $user->name
    ];
});

上記のコードは、チャット ルーム内のユーザー間で JSON データを Redis に送信することとして表現されます。これには、他のユーザーに誰がルームにいるかを知らせるための ID とユーザー名のキーと値のペアが含まれています。

    フロントエンドでの Laravel ブロードキャストの使用
Laravel でブロードキャストを実装したので、フロントエンドでブロードキャスト関数を使用する必要があります。 Laravel では、Laravel Echo を使用してこの機能を簡単に実装できます。 Laravel Echo は、アプリケーションと WebSocket サーバー間でデータを転送するためのライブラリです。次のコードを使用して、Laravel Echo をアプリケーションに追加できます。

import Echo from 'laravel-echo';
window.Echo = new Echo({
 broadcaster: 'pusher',
 key: process.env.MIX_PUSHER_APP_KEY,
 cluster: process.env.MIX_PUSHER_APP_CLUSTER,
 encrypted: true
});

上記のコードでは、Pusher をブロードキャスト ドライバーとして使用し、Pusher 関連のパラメーターを設定してから、前面で Laravel Echo を使用する必要があります。 -end コードを使用してブロードキャスト イベントをリッスンします。例:

Echo.channel(`chat.${roomId}`)
    .listen('NewMessage', (e) => {
        console.log(e);
});

上記のコードは、新しいメッセージがあった場合に、そのメッセージの内容をコンソールに出力することを表現しています。

NewMessage イベントでブロードキャスト メッセージを受信するロジックを実装する必要があります。 Laravel Broadcastingを利用したWebSocket通信の実装方法です。

概要

この記事では、Laravel Broadcastingを使用してWebSocket通信を実装する方法を紹介しました。 Laravel ブロードキャストを実装する前に、まず必要なライブラリとパッケージをインストールし、次に Pusher または Redis ドライバーを使用してブロードキャストする必要があります。最後に、フロントエンドで Laravel Echo を使用してブロードキャスト イベントをリッスンします。この記事が、Laravel Broadcasting を使用して WebSocket 通信を実装する方法を理解するのに役立つことを願っています。

以上がLaravel 開発: Laravel Broadcasting を使用して WebSocket 通信を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Laravelの移行の使用方法:ステップバイステップのチュートリアルLaravelの移行の使用方法:ステップバイステップのチュートリアルMay 13, 2025 am 12:15 AM

laravelMigrationSstreamLedinedAtabaseManagementionbyAllowingsCheMachAngESTOBEDEDINPHPCODE

最新のLaravelバージョンを見つける:迅速で簡単なガイド最新のLaravelバージョンを見つける:迅速で簡単なガイドMay 13, 2025 am 12:13 AM

Laravelの最新バージョンを見つけるには、公式Webサイトlaravel.comにアクセスして、右上隅の「ドキュメント」ボタンをクリックするか、Composersコマンド「Composershowlaravel/Framework | Grepversions」を使用できます。更新され続けると、プロジェクトのセキュリティとパフォーマンスの向上に役立ちますが、既存のプロジェクトへの影響を考慮する必要があります。

Laravelで更新されたまま:最新バージョンを使用することの利点Laravelで更新されたまま:最新バージョンを使用することの利点May 13, 2025 am 12:08 AM

Youは、loredupdateTotheTothESTLARAVERVERSIONFORPERFORMANCEIMPROVEMENTS、強化セキュリティ、NewFeatures、BetterCommunitySupport、およびLong-Termmantenance.1)パフォーマンス:laravel9'seloquentormizationsenhanceapplicationspeed.2)laravel8introducedbetter

Laravel:私は移行を台無しにしました、私は何ができますか?Laravel:私は移行を台無しにしました、私は何ができますか?May 13, 2025 am 12:06 AM

YuouMessupAmigrationInlaravel、1)RollBackTheMigrationS'PhpartisanMigrate:rollback'ifit'sthelastone、Or'phpartisanMigrate:reset'forall;

LARAVELバージョン:パフォーマンスガイドLARAVELバージョン:パフォーマンスガイドMay 13, 2025 am 12:04 AM

ToBoostperformanceInthElatestlaravelversion、FollowTheSteps:1)useredisisporcaching toefroveresponsetimeSandatedatubaseload.2)最適化されたabaseasequerieswitheageringtopreventn 1 queryissues.3)rutecachinginpoductionsospeeduprowtereSolution。

最新のLaravelバージョン:新しいものを発見してください最新のLaravelバージョン:新しいものを発見してくださいMay 12, 2025 am 12:15 AM

LARAVEL10INTRODUCESSERALKEYFEATURESTENHANCEWEBDEVELOPMENT.1)LAZYCOLLECTIONSSALLECTIONSSALLOWECTIONSALLOWESPICIENTPROCESSINGOFLAREDATASETSWITHOUTLECORDSINTOMEMORY.2)The'Make:Model and-Migration'ArtisAncommandSimplifiesingModElsandmigrations.3)Integration

Laravel移行の説明:データベースの作成、変更、管理Laravel移行の説明:データベースの作成、変更、管理May 12, 2025 am 12:11 AM

laravelmigrationsは、開発の測定を行う必要があります

Laravel Migration:使用する価値はありますか?Laravel Migration:使用する価値はありますか?May 12, 2025 am 12:10 AM

はい、laravelmigrationsworthusing.itsimplifiesdatabaseschemamamanagement、entancescollaboration、およびprovidesversioncontrol.useitfortructured、efficientdevelopment。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

メモ帳++7.3.1

メモ帳++7.3.1

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

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。