PHPackages                             terciuss/flanx-pusher - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. terciuss/flanx-pusher

ActiveLibrary[HTTP &amp; Networking](/categories/http)

terciuss/flanx-pusher
=====================

WebSocket Daemon пакет для Laravel приложений с поддержкой Pusher-совместимого протокола

v1.0.12(8mo ago)024MITPHPPHP ^8.1

Since Jul 10Pushed 8mo agoCompare

[ Source](https://github.com/Terciuss/flanx-pusher)[ Packagist](https://packagist.org/packages/terciuss/flanx-pusher)[ Docs](https://github.com/Terciuss/flanx-pusher)[ RSS](/packages/terciuss-flanx-pusher/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (3)Dependencies (7)Versions (11)Used By (0)

Flanx Pusher Package
====================

[](#flanx-pusher-package)

[![Latest Version on Packagist](https://camo.githubusercontent.com/075eaa172d5da7eae72d0ca6d01040a05f2b2b798fd25c03ce59d3caac0549c8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f74657263697573732f666c616e782d7075736865722e737667)](https://packagist.org/packages/terciuss/flanx-pusher)[![Total Downloads](https://camo.githubusercontent.com/0ae88c7fd65058a0b867bdf7bf41f8590f74aae8bd6be909b9e5032e3e2e85fa/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f74657263697573732f666c616e782d7075736865722e737667)](https://packagist.org/packages/terciuss/flanx-pusher)[![License](https://camo.githubusercontent.com/c3f7853ee487713f4b17a20ffdfdf82796ef7e91157570e7c9743fa8648e9831/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f74657263697573732f666c616e782d7075736865722e737667)](https://packagist.org/packages/terciuss/flanx-pusher)[![Tests](https://github.com/Terciuss/flanx-pusher/actions/workflows/tests.yml/badge.svg)](https://github.com/Terciuss/flanx-pusher/actions/workflows/tests.yml)

Пакет для работы с WebSocket соединениями в Laravel приложениях с поддержкой Pusher-совместимого протокола. Предоставляет мощную систему для создания real-time приложений с автоматической обработкой событий и масштабируемой архитектурой.

🚀 Возможности
-------------

[](#-возможности)

- ✅ **WebSocket Daemon** - Автономный процесс для обработки WebSocket соединений
- ✅ **SSL/TLS поддержка** - Поддержка защищенных WebSocket соединений (wss://)
- ✅ **Pusher-совместимый протокол** - Полная совместимость с Pusher API
- ✅ **Система обработчиков сообщений** - Гибкая архитектура для обработки различных типов событий
- ✅ **Автоматическое переподключение** - Устойчивость к сбоям сети
- ✅ **Интеграция с Laravel** - Полная интеграция через Service Provider
- ✅ **Настраиваемое логирование** - Детальное логирование для отладки
- ✅ **Команды Artisan** - Удобные команды для управления
- ✅ **Redis интеграция** - Использование Redis для очередей событий
- ✅ **Event-driven архитектура** - Обработка событий через Laravel Events
- ✅ **Тестирование** - Полное покрытие тестами

🔗 Связанные проекты
-------------------

[](#-связанные-проекты)

- **[flanx-pusher-client](https://www.npmjs.com/package/flanx-pusher-client)** - Клиентская библиотека для JavaScript/TypeScript с поддержкой WebSocket соединений и Pusher-совместимого протокола.

📦 Установка
-----------

[](#-установка)

### Через Composer

[](#через-composer)

```
composer require terciuss/flanx-pusher
```

### Публикация конфигурации

[](#публикация-конфигурации)

```
php artisan vendor:publish --tag=websocket-daemon-config
```

🔧 Использование
---------------

[](#-использование)

### Запуск WebSocket Daemon

[](#запуск-websocket-daemon)

```
php artisan websocket:daemon --app-uuid=your-app-uuid --token=your-token
```

Daemon автоматически обрабатывает WebSocket соединения и события из Redis очереди.

### Параметры команды

[](#параметры-команды)

ПараметрОписаниеОбязательныйПо умолчанию`--app-uuid`UUID приложенияДа-`--token`Токен для аутентификацииДа-`--host`Хост WebSocket сервераНетlocalhost`--port`Порт WebSocket сервераНет6001`--daemon`Запуск в фоновом режимеНетfalse⚙️ Конфигурация
---------------

[](#️-конфигурация)

Настройки пакета находятся в файле `config/websocket-daemon.php`:

```
return [
    'defaults' => [
        'host' => env('WEBSOCKET_HOST', 'localhost'),
        'port' => env('WEBSOCKET_PORT', 6001),
        'reconnect_delay' => env('WEBSOCKET_RECONNECT_DELAY', 5),
    ],

    'logging' => [
        'enabled' => env('WEBSOCKET_LOGGING_ENABLED', true),
        'level' => env('WEBSOCKET_LOG_LEVEL', 'info'),
    ],

    'handlers' => [
        // 'message.sent' => MessageSentHandler::class,
    ],

    'event_handlers' => [
        '*' => \Terciuss\FlanxPusher\Handlers\DefaultEventHandler::class,
    ],
];
```

### Переменные окружения

[](#переменные-окружения)

```
WEBSOCKET_HOST=localhost
WEBSOCKET_PORT=6001
WEBSOCKET_RECONNECT_DELAY=5
WEBSOCKET_LOGGING_ENABLED=true
WEBSOCKET_LOG_LEVEL=info
```

🏗️ Архитектура
--------------

[](#️-архитектура)

### Основные компоненты

[](#основные-компоненты)

#### 1. WebSocketConnection

[](#1-websocketconnection)

Управляет WebSocket соединением, обрабатывает фреймы и обеспечивает стабильное соединение.

#### 2. MessageHandlerManager

[](#2-messagehandlermanager)

Центральный менеджер для обработки различных типов сообщений через систему обработчиков.

#### 3. EventProcessor

[](#3-eventprocessor)

Обрабатывает события из Redis и распределяет их по соответствующим обработчикам.

#### 4. Handlers

[](#4-handlers)

Специализированные классы для обработки конкретных типов сообщений.

### Создание собственного обработчика

[](#создание-собственного-обработчика)

```
