Я создаю пакет laravel, который требует прослушивания веб-сокета, когда событие запускается для обновления на интерфейсе vue. Как мне зарегистрировать широковещательную службу у поставщика услуг пакетов для прослушивания каналов в моих файлах маршрутов. Я копал несколько дней, но до сих пор не получил ответа.
Это моя функция загрузки в моем поставщике услуг пакетов.
public function boot()
{
if ($this->app->runningInConsole()){
$this->registerPublishing();
}
$this->registerResources();
$this->registerRoutes();
$this->assetPublishing();
// $this->app->register(SeedServiceProvider::class);
// $this->registerSeedsFrom(__DIR__.'/../database/seeds');
$this->registerBroadcastRoutes();
}
И вот как я регистрирую свою широковещательную службу в способ ниже. Я также пробовал без атрибута namespace.
public function registerBroadcastRoutes()
{
Broadcast::routes(['namespace' => 'Midstackdev\TicketingApp\Http\Controllers']);
require __DIR__.'/../routes/channels.php';
}
Мое событие в пакете
<?php
namespace Midstackdev\TicketingApp\Events;
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
use Qodehub\TicketingApp\RequestChat;
class ChatCreated implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $chat;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct(RequestChat $chat)
{
$this->chat = $chat;
}
public function broadcastWith()
{
return [
'message' => $this->chat
];
}
public function broadcastAs()
{
return 'newChatMessage';
}
/**
* Get the channels the event should broadcast on.
*
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn()
{
return new Channel('chat');
}
}
Мои маршруты / каналы. php
<?php
use Illuminate\Support\Facades\Broadcast;
Broadcast::channel('chat', function () {
return true;
});
My js файл для прослушивания
Echo.channel('chat')
.listen('newChatMessage', (e) => {
console.log(e)
console.log(message)
})
Кто-нибудь может мне помочь?