Я страдал от проблемы в течение многих дней ...
Я использую Laravel-echo с socket.io, и когда я пробую общедоступный канал, он работает очень хорошо, но когда я пытаюсь использовать частныйили канал присутствия, я получил эту ошибку:
"Клиент не может быть аутентифицирован, получил статус HTTP 404"
=> App \ Providers \ BroadcastServiceProvider :: class, уже был оставлен без комментариев
Моя страница Vue:
Echo.private('post').listen('comments', (e) => {
this.messages.push(e[0]) ;
});
bootstrap.js
import Echo from 'laravel-echo'
window.io = require('socket.io-client');
window.Echo = new Echo({
broadcaster: 'socket.io',
host: window.location.hostname + ':6001' ,
});
событие:
class comments implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
private $comment , $receiverId ;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct($comment , $receiverId)
{
$this->comment = $comment ;
$this->$receiverId = $receiverId ;
}
/**
* Get the channels the event should broadcast on.
*
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn()
{
//i try PrivateChannel('post.'+$this->receiverId ); ...
return new PrivateChannel('post');
}
public function broadcastWith(){
return [ $this->comment ] ;
}
}
маршруты / каналы:
Broadcast::channel('post', function ($user , $id) {
return true ; // i already try this (int) $user->id !== null;
});
BroadcastServiceProvider:
public function boot()
{
require base_path('routes/channels.php');
Broadcast::routes();
}
я использую php artisan queue: работа для очередей
А для redis у меня на компьютере установлен redis-server.exe
помогите пожалуйста !!!!!!