Laravel websockets 缓存事件 class 并且不重新加载更改
Laravel websockets caching event class and doesn't reload changes
我无法在事件 class 中更改频道名称。我在 class 中所做的每项更改都未加载。 (我正在使用 laravel-websockets)
/app/Events/BroadcastingModelEvent
class BroadcastingModelEvent implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $message;
public function __construct($message)
{
$this->message = $message;
}
public function broadcastOn()
{
return new Channel('test');
}
}
/routes/web.php
:
Route::get('test', function () {
event(new App\Events\BroadcastingModelEvent('Test'));
return "Event has been sent!";
});
VueComponent
Echo.channel('test')
.listen('BroadcastingModelEvent', (e) => {
console.log(e);
});
所以这段代码有效,我在console.log收到事件一切正常。
但是如果我更改 return new Channel('something');
和 Echo.channel('something')
它会停止工作。
我尝试了 php artisan route:clear
、php artisan cache:clear
、php artisan event:clear
,但 works.I 没有停止 php artisan websockets:serve
进程并重新启动它。 class 仅适用于我最初提供的 'test' 名称,除此之外别无他法。
我不知道它在哪里缓存 class 因为我在 BroadcastingModelEvent
中所做的任何更改都没有反映出来。
对于遇到此问题的任何人,您需要在编辑事件时重新启动队列工作进程。
我无法在事件 class 中更改频道名称。我在 class 中所做的每项更改都未加载。 (我正在使用 laravel-websockets)
/app/Events/BroadcastingModelEvent
class BroadcastingModelEvent implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $message;
public function __construct($message)
{
$this->message = $message;
}
public function broadcastOn()
{
return new Channel('test');
}
}
/routes/web.php
:
Route::get('test', function () {
event(new App\Events\BroadcastingModelEvent('Test'));
return "Event has been sent!";
});
VueComponent
Echo.channel('test')
.listen('BroadcastingModelEvent', (e) => {
console.log(e);
});
所以这段代码有效,我在console.log收到事件一切正常。
但是如果我更改 return new Channel('something');
和 Echo.channel('something')
它会停止工作。
我尝试了 php artisan route:clear
、php artisan cache:clear
、php artisan event:clear
,但 works.I 没有停止 php artisan websockets:serve
进程并重新启动它。 class 仅适用于我最初提供的 'test' 名称,除此之外别无他法。
我不知道它在哪里缓存 class 因为我在 BroadcastingModelEvent
中所做的任何更改都没有反映出来。
对于遇到此问题的任何人,您需要在编辑事件时重新启动队列工作进程。