# Отладка WebSocket подключения

## Проверка логов

### 1. Логи Laravel Echo Server

```bash
tail -f /home/kartulirest/public_html/kartulirest.de/storage/logs/echoserver.log
```

Должны видеть:
- Подключения клиентов
- Подписки на каналы
- Получение событий из Redis

### 2. Логи Laravel (события)

```bash
tail -f /home/kartulirest/public_html/kartulirest.de/storage/logs/laravel.log | grep -i "order\|broadcast"
```

### 3. Логи очереди (если используется)

```bash
tail -f /home/kartulirest/public_html/kartulirest.de/storage/logs/supervisor_queue-listen.log
```

## Проверка Redis

### Проверка, что события попадают в Redis

```bash
redis-cli
> PSUBSCRIBE *
```

Затем создайте заказ - должны увидеть сообщения в Redis.

### Проверка каналов Redis

```bash
redis-cli
> PUBSUB CHANNELS
> PUBSUB NUMSUB laravel_database_*
```

## Проверка на фронтенде

Откройте консоль браузера (F12) и проверьте:

1. **Подключение к Socket.io:**
   - `🔌 Socket.io connected` - подключение установлено

2. **Подписка на канал:**
   - `✅ Successfully subscribed to admin-orders channel` - подписка успешна

3. **Подписка на события:**
   - `✅ Subscribed to event: .order.created` - подписка на событие

4. **Получение событий:**
   - `📨 Event received: .order.created` - событие получено
   - `📦 Новый заказ получен:` - обработка события

## Частые проблемы

### Проблема: "Error subscribing to admin-orders channel"

**Причина:** Проблема с авторизацией канала

**Решение:**
1. Проверьте, что токен передается правильно
2. Проверьте маршрут `/api/broadcasting/auth`
3. Проверьте права доступа пользователя (должен быть admin или manager)

### Проблема: События не приходят

**Проверьте:**
1. Laravel Echo Server запущен и подключен к Redis
2. События отправляются в Redis (проверьте через `redis-cli PSUBSCRIBE *`)
3. Подписка на канал успешна (проверьте консоль браузера)
4. Правильное имя события (`.order.created` с точкой)

### Проблема: Socket.io не подключается

**Проверьте:**
1. Laravel Echo Server запущен на порту 6001
2. Apache/Nginx правильно проксирует WebSocket
3. Firewall разрешает подключения к порту 6001
4. SSL сертификат валиден

## Тестирование

### Тест 1: Проверка подключения

Откройте консоль браузера и выполните:
```javascript
window.Echo.connector.socket.connected
// Должно вернуть: true
```

### Тест 2: Проверка подписки на канал

```javascript
window.Echo.private('admin-orders').subscribed(() => {
    console.log('Channel subscribed');
});
```

### Тест 3: Ручная отправка события

На сервере выполните:
```bash
php artisan test:broadcast 19
```

Затем проверьте консоль браузера - должно появиться событие.
