#laravel #laravel-echo
Вопрос:
Я использую веб-сайты laravel, и он прослушивает все каналы, но Laravel Echo не слушает частные каналы, он слушает только общедоступные каналы
channels.php
use IlluminateSupportFacadesBroadcast;
Broadcast::channel('user.{id}', function ($user, $id) {
return true;
});
Класс мероприятия
class TicketAssigned implements ShouldBroadcastNow
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $message;
public $user;
public function __construct(User $user, $message)
{
$this->message = $message;
$this->user = $user;
}
public function broadcastOn()
{
return new PrivateChannel('private-user.'.$this->user->id);
}
public function broadcastAs()
{
return 'user.created';
}
}
Это мое app.js файл, в котором есть моя конфигурация Laravel Echo
import Echo from 'laravel-echo';
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
database: "redis",
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
wsHost: window.location.hostname,
wsPort: 6001,
wssPort: 6001,
disableStats: true,
enabledTransports: ['ws', 'wss'],
authEndpoint: "/broadcasting/auth",
});
window.Echo.private('user.' window.Laravel.user) //public channel work
.listen('.user.created', (message) => {
console.log(message);
});
websockets.php
'apps' => [
[
'id' => env('PUSHER_APP_ID'),
'name' => env('APP_NAME'),
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'enable_client_messages' => true,
'enable_statistics' => false,
],
],