Недавно возникла та же проблема с моими laravel -websockets и laravel echo. В моем случае я не смог решить 302, так как Broadcast не смог аутентифицировать моего авторизованного пользователя. Я пытался подписаться на мой частный канал. Таким образом, я нашел обходной путь: я вручную создал POST-маршрут в сети. php как "/ broadcasting / auth". Это то, к чему просит мой интерфейс. Итак, обновленный код в сети. php выглядит следующим образом.
Route::post('/broadcasting/auth', function(Request $request){
$pusher = new Pusher\Pusher(
env('PUSHER_APP_KEY'),
env('PUSHER_APP_SECRET'),
env('PUSHER_APP_ID'),
array(
'cluster' => env('PUSHER_APP_CLUSTER'),
'useTLS' => false,
'host' => env('APP_URL'),
'port' => 6001,
'scheme' => 'http',
)
);
return $pusher->socket_auth($request->request->get('channel_name'),$request->request->get('socket_id'));
});
Я создавал свой собственный веб-сокет, поэтому я должен был упомянуть хост и порт в варианты, вам не нужно использовать его, если вы используете толкатель. Вы также можете добавить другие промежуточные программы к маршрутам, если это необходимо. Вы должны закомментировать следующую строку в app / provider / BroadcastServiceProvider :
public function boot()
{
// Broadcast::routes();
require base_path('routes/channels.php');
}
, чтобы запрос мог достичь моего маршрута broadcasting / auth в сети. php.
Попробуйте это. теперь это должно возвращать 200, когда ваша клиентская сторона запрашивает широковещание / авторизацию с ответом кода авторизации. Дайте мне знать, если это решит вашу проблему.