flutter_freedome_connectivity 1.0.0 copy "flutter_freedome_connectivity: ^1.0.0" to clipboard
flutter_freedome_connectivity: ^1.0.0 copied to clipboard

FreeDome connectivity and connection management

Flutter FreeDome Connectivity #

pub package License

Модуль для управления подключениями к купольным системам 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