flutter_freedome_connectivity 1.0.0
flutter_freedome_connectivity: ^1.0.0 copied to clipboard
FreeDome connectivity and connection management
Flutter FreeDome Connectivity #
Модуль для управления подключениями к купольным системам FreeDome. Обеспечивает стабильные соединения, автоматическое переподключение и мониторинг состояния.
🎯 Возможности #
🔌 Управление подключениями #
- Автоматическое подключение к ближайшим купольным системам
- Пул соединений для управления множественными подключениями
- Heartbeat мониторинг для отслеживания состояния соединений
- Автоматическое переподключение при разрыве соединения
🌐 Сетевые возможности #
- Обнаружение систем в локальной сети
- Поддержка множественных протоколов (Socket.IO, WebSocket, HTTP)
- Сетевая диагностика и мониторинг качества соединения
- Кэширование соединений для быстрого переподключения
🚀 Быстрый старт #
Установка #
dependencies:
flutter_freedome_connectivity: ^1.0.0
Базовое использование #
import 'package:flutter_freedome_connectivity/flutter_freedome_connectivity.dart';
class ConnectionExample {
final ConnectionService _connectionService = ConnectionService();
Future<void> connectToDome() async {
// Подключение к ближайшему куполу
final success = await _connectionService.connectToNearestDome();
if (success) {
print('Подключен к купольной системе!');
}
}
Future<void> listenToConnectionEvents() async {
_connectionService.connectionStream.listen((event) {
switch (event.type) {
case ConnectionEventType.connected:
print('Соединение установлено: ${event.domeId}');
break;
case ConnectionEventType.disconnected:
print('Соединение разорвано: ${event.domeId}');
break;
case ConnectionEventType.error:
print('Ошибка соединения: ${event.error}');
break;
}
});
}
}
📖 API Документация #
ConnectionService #
Основной сервис для управления подключениями:
abstract class ConnectionService {
// Подключение
Future<bool> connectToNearestDome();
Future<bool> connectToDome(DomeSystem dome);
Future<void> disconnect();
// Состояние
bool get isConnected;
List<DomeSystem> get discoveredSystems;
DomeSystem? get activeDome;
// События
Stream<ConnectionEvent> get connectionStream;
Stream<List<DomeSystem>> get discoveryStream;
}
ConnectionPool #
Управление пулом соединений:
class ConnectionPool {
// Получение соединения
Future<Connection> getConnection(String domeId);
// Управление пулом
void addConnection(String domeId, Connection connection);
void removeConnection(String domeId);
void clearPool();
// Статистика
Map<String, Connection> get activeConnections;
int get connectionCount;
}
HeartbeatService #
Мониторинг состояния соединений:
class HeartbeatService {
// Настройка heartbeat
void startHeartbeat(String domeId, Duration interval);
void stopHeartbeat(String domeId);
// События
Stream<HeartbeatEvent> get heartbeatStream;
// Статистика
Map<String, HeartbeatStats> get heartbeatStats;
}
⚙️ Конфигурация #
ConnectionConfig #
class ConnectionConfig {
final Duration timeout;
final int maxReconnectAttempts;
final Duration reconnectDelay;
final bool enableHeartbeat;
final Duration heartbeatInterval;
const ConnectionConfig({
this.timeout = const Duration(seconds: 10),
this.maxReconnectAttempts = 5,
this.reconnectDelay = const Duration(seconds: 2),
this.enableHeartbeat = true,
this.heartbeatInterval = const Duration(seconds: 30),
});
}
📊 Метрики и мониторинг #
ConnectionMetrics #
class ConnectionMetrics {
final int totalConnections;
final int successfulConnections;
final int failedConnections;
final Duration averageConnectionTime;
final Map<String, Duration> connectionDurations;
// Методы для получения статистики
double get successRate;
Duration get totalUptime;
List<String> get topConnectedDomes;
}
🛠️ Разработка #
Сборка из исходников #
git clone https://github.com/nativemind/flutter_freedome_connectivity.git
cd flutter_freedome_connectivity
flutter pub get
flutter packages pub run build_runner build
Тестирование #
flutter test
📄 Лицензия #
NativeMindNONC License
Сделано с ❤️ командой NativeMind