Whisper является реализацией WebSocket сервера для Laravel, который обеспечивает реальное время на стороне сервера и позволяет обмениваться сообщениями между клиентами. Laravel Echo — это пакет, который упрощает работу с WebSocket сервером Whisper на стороне клиента.
Однако, Whisper также предоставляет возможность принимать сообщения на стороне сервера. В этом руководстве мы рассмотрим, как принимать сообщения на стороне сервера с использованием Whisper и Laravel Echo.
Прежде всего, необходимо установить и настроить Laravel и Laravel Echo. Убедитесь, что у вас установлена последняя версия Laravel и Laravel Echo. После установки и настройки, вы можете приступить к настройке серверной части.
Для начала, установите пакет Whisper для Laravel, выполнив команду ‘composer require beyondcode/laravel-websockets’. После установки пакета, выполните миграцию, чтобы добавить таблицы в базу данных командой ‘php artisan migrate’. Затем, настройте нужные параметры в файле config/websockets.php.
ПРИМЕЧАНИЕ: Помните, что Whisper требует, чтобы ваш сервер поддерживал протоколы WebSockets. Убедитесь, что ваш сервер настроен для работы с WebSockets.
Как использовать whisper laravel-echo в Laravel с использованием серверной стороны — пошаговое руководство
Шаг 1: Установка и настройка Laravel
Первым шагом является установка Laravel и его настройка. Вы можете установить Laravel, используя Composer или Laravel Installer. После установки вам необходимо настроить файл конфигурации .env, указав настройки для базы данных и другие параметры, необходимые для вашего проекта.
Шаг 2: Установка и настройка Laravel Echo Server
Для использования whisper laravel-echo на стороне сервера, вам необходимо установить и настроить Laravel Echo Server. Вы можете установить его с помощью npm или yarn, указав в вашем проекте корректные настройки (номер порта, секретный ключ и др.). После установки и настройки Laravel Echo Server вы сможете запустить его с помощью команды laravel-echo-server start в командной строке.
Шаг 3: Настройка Laravel для работы с Whisper
Чтобы Laravel мог использовать Whisper для обмена сообщениями между клиентами и сервером, вам необходимо настроить Broadcast сервис и добавить достаточно подписок на каналы, чтобы Whisper мог обрабатывать входящие и исходящие сообщения. Для этого вам нужно открыть файл routes/channels.php и определить подписки на каналы для Whisper. Например:
// routes/channels.php
Broadcast::channel('chat.{roomId}', function ($user, $roomId) { return true; });
Шаг 4: Создание контроллера для обработки Whisper
Для обработки входящих сообщений Whisper вам нужно создать контроллер, который будет отлавливать и обрабатывать эти сообщения. Вы можете создать контроллер с помощью команды Artisan:
php artisan make:controller WhisperController
namespace App\Http\Controllers; use Illuminate\Http\Request; class WhisperController extends Controller { public function receive(Request $request) { $payload = json_decode($request->getContent(), true); // Обработка входящего сообщения // ... } }
Шаг 5: Роутинг в Laravel для передачи входящих сообщений Whisper в контроллер
Чтобы передать входящие сообщения Whisper в созданный контроллер, необходимо настроить роутинг в Laravel. Добавьте следующую строку в файл routes/api.php:
Route::post('/whisper/receive', [WhisperController::class, 'receive']);
Шаг 6: Использование Whisper на стороне клиента
Теперь, когда серверная сторона для работы с Whisper настроена, вы можете использовать Whisper на стороне клиента, используя Laravel Echo. Вы можете подключиться к Whisper и принимать и отправлять сообщения с помощью следующей логики:
import Echo from 'laravel-echo'; window.Echo = new Echo({ broadcaster: 'socket.io', host: 'http://your-app-url.com:6001', // Адрес вашего Laravel Echo Server auth: { headers: { Authorization: `Bearer ${yourAuthToken}` // Передача вашего JWT-токена } } }); window.Echo.private('chat.${roomId}') .listen('.message', (e) => { console.log(e); }) .whisper('message', { message: 'Hello, Whisper!' });
Это всё!
Теперь вы знаете, как использовать whisper laravel-echo на стороне сервера в Laravel. Вы можете делать обмен сообщениями между клиентами и сервером в реальном времени, используя Laraverl Echo и Whisper. Успехов в вашем проекте!