2017-10-19 33 views
0

J'ai un événement appelé 'Event1' et un écouteur d'événement 'Event1Listener' pour l'événement dans mon application lumen. J'ai besoin de publier un message personnalisé sur un canal redis appelé 'channel1' quand event1 est déclenché. Comment puis-je faire ceci?Comment publier un message sur un canal redis en utilisant la diffusion lumen?

Event1.php

<?php 
    namespace App\Events; 
    use Illuminate\Contracts\Broadcasting\ShouldBroadcast; 
    class Event1 extends Event implements ShouldBroadcast 
    { 
     /** 
     * Create a new event instance. 
     * @return void 
     */ 
     public function __construct() {   
     } 
     /** 
     * Get the channels the event should be broadcast on. 
     * 
     * @return array 
     */ 
     public function broadcastOn() { 
      return ['channel1']; 
     } 
    } 
?> 

Event1Listener.php

<?php 

    namespace App\Listeners; 

    use App\Events\Event1; 
    use Illuminate\Queue\InteractsWithQueue; 
    use Illuminate\Contracts\Queue\ShouldQueue; 

    class Event1Listener { 
     /** 
     * Create the event listener. 
     * 
     * @return void 
     */ 
     public function __construct(){ 
     } 
     /** 
     * Handle the event. 
     * 
     * @param Event1 $event 
     * @return void 
     */ 
     public function handle(Event1 $event) { 
      echo "What should I add here?"; 
     } 
    } 
?> 

Répondre

0

En supposant que vous avez configuré Redis Sinon vérifier la laravel documentation et lumen documentation

Pour publier un message à la canal vous cou ld utiliser la commande

public function handle(Event1 $event) { 
    Redis::publish('channel1', json_encode(['foo' => 'bar'])); 
} 
+0

Obtenir une erreur lorsque 'Redis :: publish()' est appelé. J'ai '" "illuminer/redis": "~ 5.1" 'et' "predis/predis": "~ 1.0" 'dans mon composer.json et aussi appelé' Use Redis' dans le fichier d'écoute. Le dossier du fournisseur contient le répertoire illuminate/redis et a également enregistré Illuminate \ Redis \ RedisServiceProvider dans mon fichier bootstrap/app.php. – LJP

+0

Veuillez partager votre fichier 'app.php' et avez-vous essayé' composer dump-autoload'? – linktoahref

+0

'$ app-> configure ('diffusion'); $ app-> register (App \ Providers \ EventServiceProvider :: class); $ app-> register (Illuminate \ Redis \ RedisServiceProvider :: class); ' – LJP