connect method

void connect()

Implementation

void connect() {
  if (_channel != null) return;
  _manuallyClosed = false;

  String token = Cnt.token;
  if (token.startsWith('Bearer ')) {
    token = token.substring(7);
  }
  final url = '${ApiConstants.socketUrl}?token=$token&module=las';
  debugPrint('🔌 Skt.connect() URL: $url');
  debugPrint('🔑 Skt.connect() Token from Cnt: $token');

  try {
    _channel = WebSocketChannel.connect(Uri.parse(url));

    _subscription = _channel!.stream.listen(
      (data) {
        _reconnectAttempts = 0;
        _socketCtrl.add(data);
      },
      onError: (error) {
        debugPrint('❌ Skt.connect() onError: $error');
        _handleDisconnect();
      },
      onDone: () {
        debugPrint('🔌 Skt.connect() onDone called. Code: ${_channel?.closeCode}, Reason: ${_channel?.closeReason}');
        _handleDisconnect();
      },
      cancelOnError: true,
    );
  } catch (e) {
    debugPrint('❌ Skt.connect() exception during connect: $e');
  }
}