Ich habe ein Ereignis namens "Event1" und ein Event-Listener "Event1Listener" für das Ereignis in meiner Lumen-Anwendung. Ich muss eine benutzerdefinierte Nachricht an einen Redis-Kanal namens 'channel1' veröffentlichen, wenn event1 ausgelöst wird. Wie kann ich das machen?Wie veröffentliche ich eine Nachricht in einem Redis-Kanal mit Lumen Broadcast?
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?";
}
}
?>
Erhalte einen Fehler, wenn 'Redis :: publish()' aufgerufen wird. Ich habe "Illuminieren/Redistieren": "~ 5.1" und "Predis/Predis": "~ 1.0" in meiner composer.json und auch "Redis verwenden" in der Listener-Datei. Der Vendor-Ordner enthält illuminate/redis-Verzeichnis und auch Illuminate \ Redis \ RedisServiceProvider in meiner bootstrap/app.php-Datei. – LJP
Bitte teilen Sie Ihre 'app.php' Datei und haben Sie versucht,' Composer Dump-Autoload'? – linktoahref
'$ app-> configure ('broadcasting'); $ app-> registrieren (App \ Providers \ EventServiceProvider :: class); $ app-> registrieren (Illuminate \ Redis \ RedisServiceProvider :: Klasse); ' – LJP