Laravel broadcast. Прослушка событий на стороне бека

В laravel есть встроенный функционал broadcast, трансляция событий в ws сервер. Есть большая статься на сайте лары, где описывается удобный функционал трансляции событий. Описан пакет Laravel Echo, который позваляет удобно читать эти события на фронте.

Однако у меня возникла необходимость делать наоборот. Фронт отправляет сообщения в ws сервер, а бек должен читать эти сообщения. И вот функционала прослушки сообщений в laravel имено на стороне бека нет вообще, почему-то.

В результате долгих поисков решения было сделано следующее:

Я использовал пакет beyondcode/laravel-websockets, который в свою очередь под капотом использует достаточно не простой пакет ratchet.

В доке ratchet приводится пример класса, который должен реализовывать интерфейс MessageComponentInterface

PHPВыделить код

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

<?php
namespace MyApp;
use RatchetMessageComponentInterface;
use RatchetConnectionInterface;
 
class Chat implements MessageComponentInterface {
    public function onOpen(ConnectionInterface $conn) {
    }
 
    public function onMessage(ConnectionInterface $from, $msg) {
    }
 
    public function onClose(ConnectionInterface $conn) {
    }
 
    public function onError(ConnectionInterface $conn, Exception $e) {
    }
}

Такой же класс я нашел в пакете beyondcode/laravel-websockets и переопределил его в своем приложении. Там в методе onMessage при определенных условиях уже добавил отправку events laravel. Так же это дало возможность отслеживать закрытие ws соединения, что так же очень пригодилось.

Есть ли какой-то более изящный способ реализовать подобный функционал, используя набор фич laravel? В laravel 10 был презентован некий laravel reverb, который так же позволяет развернуть ws-сервер, а так же достаточно легко обходит ограничение в 1024 коннекта, что мне понравилось. Но опять же, нигде, ни слова про возможность прослушки сообщений на стороне бека.