我无法更改事件类中的通道名称。我在课堂上所做的每一次改变都没有加载。(我正在使用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 AppEventsBroadcastingModelEvent('Test'));
return "Event has been sent!";
});
VueComponent
Echo.channel('test')
.listen('BroadcastingModelEvent', (e) => {
console.log(e);
});
所以这个代码有效,我在控制台中收到事件。log一切正常。
但如果我更改return new Channel('something');
和Echo.channel('something')
,它将停止工作。
我试过php artisan route:clear
、php artisan cache:clear
、php artisan event:clear
,但都不起作用。我停止了php artisan websockets:serve
进程并重新启动它。那个类只使用我第一次给出的"test"名称,而不使用其他名称。
我不知道它在哪里缓存类,因为我在BroadcastingModelEvent
中所做的任何更改都没有反映出来。
对于任何面临此问题的人,您需要在编辑事件时重新启动队列工作进程。