Laravel 開発: Laravel Broadcasting を使用して WebSocket 通信を実装するにはどうすればよいですか?

PHPz
リリース: 2023-06-13 23:13:46
オリジナル
1435 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート