


Développement WebSockets avec Laravel : une solution pour communiquer en temps réel
Développement WebSockets avec Laravel : Une solution pour la communication en temps réel
Citation :
À mesure que les applications Web évoluent, la communication en temps réel devient de plus en plus importante. Le modèle traditionnel de requête-réponse HTTP limite la nature en temps réel des applications, c'est pourquoi les utilisateurs ont commencé à rechercher de nouvelles solutions. La technologie WebSockets est née, qui permet d'établir une connexion persistante entre le client et le serveur, ce qui peut réaliser la fonction de communication en temps réel. Cet article présentera comment utiliser le framework Laravel pour développer facilement des applications de communication en temps réel basées sur WebSockets.
Que sont les WebSockets ?
WebSocket est un protocole de communication qui établit une connexion persistante bidirectionnelle entre un client et un serveur. Contrairement au modèle de requête-réponse HTTP traditionnel, WebSocket permet au serveur et au client d'échanger des données en temps réel. La communication WebSocket est en duplex intégral, ce qui signifie que le serveur et le client peuvent envoyer et recevoir des données en même temps.
Pourquoi choisir Laravel ?
Laravel est un framework de développement PHP populaire qui fournit de nombreuses fonctionnalités et outils puissants pour rendre la création d'applications Web plus facile et plus efficace. Le framework Laravel offre une bonne prise en charge de la communication en temps réel, et les packages d'extension Laravel Echo et Laravel WebSockets facilitent et simplifient le développement d'applications basées sur WebSockets.
Commencez à utiliser Laravel WebSockets :
Tout d'abord, nous devons installer le package d'extension Laravel WebSockets. Exécutez la commande suivante dans le terminal :
composer require beyondcode/laravel-websockets
Une fois l'installation terminée, exécutez la commande suivante pour publier le fichier de configuration :
php artisan vendor:publish --provider="BeyondCode\LaravelWebSockets\WebSocketsServiceProvider" --tag="config"
Ensuite, nous devons générer le fichier de migration de la base de données liée aux WebSockets :
php artisan vendor:publish --provider="BeyondCode\LaravelWebSockets\WebSocketsServiceProvider" --tag="migrations" php artisan migrate
Configurer Laravel WebSockets :
Ouvrez le fichier de configuration de Laravel "config/websockets.php", nous pouvons définir certaines options de configuration liées aux WebSockets, telles que l'adresse et le port d'écoute, l'authentification et l'autorisation, etc.
Création d'événements :
Dans Laravel, nous utilisons des événements pour gérer la communication en temps réel. Tout d’abord, nous devons créer une classe d’événements. Exécutez la commande suivante pour créer une classe nommée événement « NewMessage » :
php artisan make:event NewMessage
Ouvrez la classe d'événement nouvellement créée « app/Events/NewMessage.php », nous pouvons définir certaines propriétés et méthodes pour l'événement. Par exemple, nous pouvons ajouter une propriété appelée "message" à l'événement, qui stockera le contenu du message que nous souhaitons diffuser.
public $message; public function __construct($message) { $this->message = $message; }
La prochaine étape consiste à créer un diffuseur d'événements. Exécutez la commande suivante pour créer une classe de diffuseur nommée "NewMessageBroadcast" :
php artisan make:channel NewMessageBroadcast
Ouvrez la classe de diffuseur nouvellement créée "app/Broadcasting/NewMessageBroadcast.php", nous devons définir une méthode permettant au diffuseur de gérer la diffusion des événements.
public function broadcastOn() { return new Channel('new-message'); } public function broadcastAs() { return 'message'; }
Configuration du pilote de diffusion :
Ouvrez le fichier de configuration de Laravel "config/broadcasting.php", nous pouvons définir le type de pilote de diffusion sur "pusher" et fournir les options de configuration associées.
'pusher' => [ 'driver' => 'pusher', 'key' => env('PUSHER_APP_KEY'), 'secret' => env('PUSHER_APP_SECRET'), 'app_id' => env('PUSHER_APP_ID'), 'options' => [ 'cluster' => env('PUSHER_APP_CLUSTER'), 'useTLS' => true, ], ],
Une fois la configuration terminée, nous pouvons utiliser Pusher comme pilote de diffusion.
Gestion des événements :
Dans notre application, nous pouvons déclencher notre événement dans un contrôleur ou un modèle et l'envoyer en utilisant la classe de diffusion. Voici un exemple :
use AppEventsNewMessage; use IlluminateHttpRequest; public function sendMessage(Request $request) { // 处理接收到的消息 $message = $request->input('message'); // 触发事件并广播 event(new NewMessage($message)); return response()->json(['message' => 'Message sent.']); }
Dans le code ci-dessus, nous récupérons d'abord le contenu du message reçu de la requête. Nous déclenchons ensuite notre événement personnalisé "NewMessage" en utilisant la classe d'événement "event" de Laravel. Enfin, nous renvoyons une réponse JSON indiquant que le message a été envoyé.
Écouter la diffusion :
Ensuite, nous devons créer un script frontal qui écoute la diffusion. Dans votre code HTML, ajoutez le code suivant :
<script src="https://cdn.jsdelivr.net/npm/laravel-echo@^1.10.0/dist/echo.min.js"></script> <script src="/js/app.js"></script> <script> // 与WebSockets服务器建立连接 const echo = new Echo({ broadcaster: 'pusher', key: 'your-pusher-key', cluster: 'your-pusher-cluster', encrypted: true, }); // 监听来自"new-message"频道的消息 echo.channel('new-message') .listen('.message', (message) => { console.log(message); }); </script>
Dans le code ci-dessus, nous introduisons d'abord Laravel Echo et notre fichier JavaScript front-end. Nous avons ensuite initialisé l'instance Echo à l'aide de la clé Pusher et des informations de cluster configurées précédemment. Enfin, nous écoutons le canal nommé "new-message" en utilisant la méthode "echo.channel()" et traitons les messages de ce canal en utilisant la méthode ".listen()".
Conclusion :
L'utilisation de Laravel pour le développement de WebSockets est une solution idéale pour la communication en temps réel. Les packages d'extension Laravel Echo et Laravel WebSockets fournis par Laravel rendent la création d'applications basées sur WebSockets simple et efficace. En suivant les étapes et l'exemple de code de cet article, vous serez en mesure de créer rapidement une puissante application de communication en temps réel. Je vous souhaite du succès dans votre processus de développement !
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











Laravelelognent Model Retrieval: Faconttement l'obtention de données de base de données Eloquentorm fournit un moyen concis et facile à comprendre pour faire fonctionner la base de données. Cet article présentera en détail diverses techniques de recherche de modèles éloquentes pour vous aider à obtenir efficacement les données de la base de données. 1. Obtenez tous les enregistrements. Utilisez la méthode All () pour obtenir tous les enregistrements dans la table de base de données: usApp \ Modèles \ Post; $ poters = post :: all (); Cela rendra une collection. Vous pouvez accéder aux données à l'aide de Foreach Loop ou d'autres méthodes de collecte: ForEach ($ PostsAs $ POST) {echo $ post->

Laravel est un cadre PHP pour la création facile des applications Web. Il fournit une gamme de fonctionnalités puissantes, notamment: Installation: Installez le Laravel CLI globalement avec Composer et créez des applications dans le répertoire du projet. Routage: définissez la relation entre l'URL et le gestionnaire dans Routes / web.php. Voir: Créez une vue dans les ressources / vues pour rendre l'interface de l'application. Intégration de la base de données: fournit une intégration prête à l'emploi avec des bases de données telles que MySQL et utilise la migration pour créer et modifier des tables. Modèle et contrôleur: le modèle représente l'entité de la base de données et le contrôleur traite les demandes HTTP.

Lorsque vous développez des sites Web à l'aide de CRAFTCMS, vous rencontrez souvent des problèmes de mise en cache de fichiers de ressources, en particulier lorsque vous mettez fréquemment à mettre à jour les fichiers CSS et JavaScript, les anciennes versions des fichiers peuvent toujours être mises en cache par le navigateur, ce qui fait que les utilisateurs ne voient pas les derniers changements de temps. Ce problème affecte non seulement l'expérience utilisateur, mais augmente également la difficulté du développement et du débogage. Récemment, j'ai rencontré des problèmes similaires dans mon projet, et après une exploration, j'ai trouvé le plugin wiejeben / artist-laravel-mix, qui a parfaitement résolu mon problème de mise en cache.

Laravel fournit un cadre Auth complet pour implémenter les fonctions de connexion des utilisateurs, notamment: définir des modèles d'utilisateurs (modèle éloquent), créant des formulaires de connexion (moteur de modèle de lame), rédaction des contrôleurs de connexion (héritage de l'authentification \ loginContrôleur), vérifiant les demandes de connexion (Auth :: tentative) Redirection après la connexion de la connexion, la limitation de la sécurité). De plus, le cadre Auth fournit également des fonctions telles que la réinitialisation des mots de passe, l'enregistrement et la vérification des e-mails. Pour plus de détails, veuillez consulter la documentation de Laravel: https://laravel.com/doc

Résumé de l'article: Cet article fournit des instructions détaillées étape par étape pour guider les lecteurs sur la façon d'installer facilement le cadre Laravel. Laravel est un puissant cadre PHP qui accélère le processus de développement des applications Web. Ce didacticiel couvre le processus d'installation des exigences du système à la configuration des bases de données et à la configuration du routage. En suivant ces étapes, les lecteurs peuvent jeter rapidement et efficacement une base solide pour leur projet Laravel.

Traiter efficacement 7 millions d'enregistrements et créer des cartes interactives avec la technologie géospatiale. Cet article explore comment traiter efficacement plus de 7 millions d'enregistrements en utilisant Laravel et MySQL et les convertir en visualisations de cartes interactives. Exigences initiales du projet de défi: extraire des informations précieuses en utilisant 7 millions d'enregistrements dans la base de données MySQL. Beaucoup de gens considèrent d'abord les langages de programmation, mais ignorent la base de données elle-même: peut-il répondre aux besoins? La migration des données ou l'ajustement structurel est-il requis? MySQL peut-il résister à une charge de données aussi importante? Analyse préliminaire: les filtres et les propriétés clés doivent être identifiés. Après analyse, il a été constaté que seuls quelques attributs étaient liés à la solution. Nous avons vérifié la faisabilité du filtre et établi certaines restrictions pour optimiser la recherche. Recherche de cartes basée sur la ville

Comment Laravel joue-t-il un rôle dans la logique backend? Il simplifie et améliore le développement backend par le biais de systèmes de routage, d'éloquente, d'authentification et d'autorisation, d'événements et d'auditeurs et d'optimisation des performances. 1. Le système de routage permet la définition de la structure d'URL et demande la logique de traitement. 2.Lao-éloquente simplifie l'interaction de la base de données. 3. Le système d'authentification et d'autorisation est pratique pour la gestion des utilisateurs. 4. L'événement et l'écoute implémentent la structure de code couplée de manière lâche. 5. L'optimisation des performances améliore l'efficacité de l'application par la mise en cache et la file d'attente.

Vous voulez apprendre le cadre de Laravel, mais ne souffrez pas de ressources ni de pression économique? Cet article vous fournit un apprentissage gratuit de Laravel, vous apprenant à utiliser des ressources telles que les plateformes en ligne, les documents et les forums communautaires pour jeter une base solide pour votre parcours de développement PHP de la mise en place de maîtrise.
