Я выполнил установку по умолчанию и просто попытался передать простое сообщение на страницу.
Вот мое мероприятие:
Код: Выделить всё
class TestEvent implements ShouldBroadcastNow
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public string $message;
public function __construct(string $message)
{
$this->message = $message;
}
public function broadcastOn()
{
return [new Channel('test-channel')];
}
}
Код: Выделить всё
public function handle()
{
TestEvent::dispatch('This is a test');
}
Код: Выделить всё
Echo?
@vite(['resources/css/app.css', 'resources/js/app.js'])
Echo?
Echo.channel('test-channel')
.listen('TestEvent', (e) => {
console.log('TestEvent resp...');
console.log(e);
});
Код: Выделить всё
window.Echo = new Echo({
broadcaster: 'reverb',
key: import.meta.env.VITE_REVERB_APP_KEY,
wsHost: import.meta.env.VITE_REVERB_HOST,
wsPort: import.meta.env.VITE_REVERB_PORT ?? 80,
wssPort: import.meta.env.VITE_REVERB_PORT ?? 443,
forceTLS: (import.meta.env.VITE_REVERB_SCHEME ?? 'https') === 'https',
enabledTransports: ['ws', 'wss'],
});
Итак, я решил, что все, что мне нужно сделать, это запустить npm запустите dev, запустите сервер Reverb, вызовите событие, и я увижу вывод console.log. Но ничего. В конце концов я получаю сообщение об ошибке «Не удалось подключиться к веб-сокету».
Я использую Herd для разработки, но не думаю, что это будет иметь какое-либо значение, поскольку все работает через локальный хост. Я даже проверил, не используется ли порт 8080, и ничего там нет.
Кто-нибудь знает, что может быть не так? Или как я могу это отладить?
Подробнее здесь: https://stackoverflow.com/questions/791 ... using-herd
Мобильная версия