# Fix: WebSocket Connection After Registration ## Проблема После первой регистрации аккаунта в Android приложении не работали запросы на сервер до перезапуска приложения. ## Причина При регистрации или разблокировке аккаунта вызывался `ProtocolManager.authenticate()` до того, как WebSocket соединение было установлено. Последовательность была следующая: 1. Создание/разблокировка аккаунта 2. Вызов `ProtocolManager.authenticate(publicKey, privateKeyHash)` 3. `authenticate()` вызывает `getProtocol().startHandshake()` 4. `startHandshake()` проверяет что не подключено и вызывает `connect()`, но затем сразу возвращается 5. Соединение устанавливается асинхронно, но handshake не происходит вовремя 6. Приложение переходит к экрану чатов, запросы не проходят После перезапуска приложения `ProtocolManager.connect()` вызывался в `ChatsListScreen`, поэтому все работало нормально. ## Решение Добавлен явный вызов `ProtocolManager.connect()` перед `authenticate()` в следующих местах: ### 1. AuthState.kt - Метод `createAccount()` - после создания аккаунта - Метод `unlock()` - после разблокировки ### 2. SetPasswordScreen.kt - При создании нового аккаунта после установки пароля ### 3. UnlockScreen.kt - При разблокировке существующего аккаунта Добавлена задержка 500ms после `connect()` для того, чтобы WebSocket успел установить соединение до попытки аутентификации. ## Измененные файлы - `app/src/main/java/com/rosetta/messenger/providers/AuthState.kt` - `app/src/main/java/com/rosetta/messenger/ui/auth/SetPasswordScreen.kt` - `app/src/main/java/com/rosetta/messenger/ui/auth/UnlockScreen.kt` ## Код изменений ```kotlin // Было: ProtocolManager.authenticate(publicKey, privateKeyHash) // Стало: ProtocolManager.connect() kotlinx.coroutines.delay(500) // Даём время на установку соединения ProtocolManager.authenticate(publicKey, privateKeyHash) ``` ## Тестирование После этого исправления: 1. Зарегистрируйте новый аккаунт 2. Сразу после регистрации попробуйте отправить сообщение или выполнить другой запрос 3. Запросы должны проходить без перезапуска приложения ## Дата 11 января 2026