Laravel est un framework PHP populaire qui possède de nombreux outils utiles et bibliothèques d'extensions qui permettent aux développeurs de créer facilement des applications Web de haute qualité. Parmi eux, Laravel Echo est un puissant outil de communication WebSockets qui peut aider les développeurs à établir une communication en temps réel dans les applications Web.
Dans cet article, nous présenterons comment utiliser Laravel Echo et établir un serveur WebSockets pour établir une communication en temps réel. Nous décrirons d'abord brièvement ce que sont WebSockets et Laravel Echo, puis nous expliquerons comment installer et configurer Laravel Echo, et enfin démontrerons comment utiliser Laravel Echo pour communiquer avec les clients JavaScript.
WebSockets est un protocole qui permet des connexions de communication en temps réel entre les applications Web et les serveurs Web. Cette connexion peut rester ouverte longtemps et est bidirectionnelle, permettant une lecture et une écriture simultanées.
Contrairement aux requêtes HTTP, l'ouverture continue des connexions WebSockets permet au serveur de pousser les données vers le client en temps réel sans avoir besoin d'une interrogation ou d'une interrogation longue. Cela permet aux applications Web de communiquer rapidement, efficacement et en temps réel.
Laravel Echo est une bibliothèque d'extensions officielle du framework Laravel, qui peut aider les développeurs à implémenter la communication WebSockets dans les applications Web. Il fournit une API simple pour s'abonner facilement aux chaînes de diffusion et transmettre des messages entre le client et le serveur à l'aide de JavaScript.
Utilisez Laravel Echo et Laravel Pusher pour configurer facilement un serveur WebSockets et utiliser les canaux de diffusion pour organiser les communications WebSockets. Côté client, nous pouvons utiliser JavaScript et Laravel Echo pour écouter les messages en temps réel afin de permettre une communication en temps réel dans les applications Web.
Avant de commencer à utiliser Laravel Echo, nous devons installer et configurer le logiciel requis : Laravel et pusher PHP SDK. Laravel Echo et pusher PHP SDK peuvent être installés via le gestionnaire de packages Composer.
Nous devons d'abord installer Laravel :
composer create-project laravel/laravel your-project-name
Ensuite, nous devons installer le SDK PHP du pusher. L'installation du SDK PHP pusher peut être effectuée en exécutant la commande suivante :
composer require pusher/pusher-php-server
Afin d'intégrer Laravel Echo et le SDK PHP pusher, nous devons ajouter le fournisseur de services et l'alias dans la configuration/l'application. php : #🎜 🎜#
// config/app.php 'providers' => [ // ... LaravelBroadcastingBroadcastServiceProvider::class, ], 'aliases' => [ // ... 'Broadcast' => LaravelBroadcastingBroadcastFacade::class, ],
BROADCAST_DRIVER=pusher PUSHER_APP_ID=your-pusher-app-id PUSHER_APP_KEY=your-pusher-app-key PUSHER_APP_SECRET=your-pusher-app-secret PUSHER_APP_CLUSTER=your-pusher-app-cluster
// routes/channels.php use IlluminateSupportFacadesBroadcast; Broadcast::channel('chat.{roomId}', function ($user, $roomId) { // ... });
// app/Events/ChatMessageSent.php <?php namespace AppEvents; use IlluminateBroadcastingPrivateChannel; use IlluminateContractsBroadcastingShouldBroadcast; use IlluminateFoundationEventsDispatchable; use IlluminateQueueSerializesModels; class ChatMessageSent implements ShouldBroadcast { use Dispatchable, SerializesModels; public $message; public function __construct($message) { $this->message = $message; } public function broadcastOn() { return new PrivateChannel('chat.' . $this->message['room_id']); } }
Echo.private(channelName).listen(eventName, callback) : Abonnez-vous aux événements de diffusion privée et enregistrez une fonction de rappel à exécuter lorsque l'événement est reçu.
// app/Http/Controllers/ChatController.php <?php namespace AppHttpControllers; use AppEventsChatMessageSent; use IlluminateHttpRequest; class ChatController extends Controller { public function sendMessage(Request $request) { $message = [ 'user_id' => $request->user()->id, 'room_id' => $request->get('room_id'), 'message' => $request->get('message'), ]; event(new ChatMessageSent($message)); return response()->json(['status' => 'Message Sent!']); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!