connect method
Implementation
Future<void> connect() async {
try {
_socket = await Socket.connect(host, port);
Console.info('✅ Connected to $host:$port');
// Register local event
_emitLocal('connect', null);
utf8.decoder.bind(_socket!).transform(const LineSplitter()).listen(
(line) {
if (line.trim().isEmpty) return;
try {
final json = jsonDecode(line) as Map<String, dynamic>;
final event = json['e'] as String?;
final data = json['d'];
if (event != null) {
// Register local event
_emitLocal(event, data);
}
} catch (e) {
Console.error('Invalid message: $e');
// Register local event
_emitLocal('error', e);
}
},
onDone: _handleDisconnect,
onError: (error) {
Console.error('Socket error: $error');
// Register local even
_emitLocal('error', error);
_handleDisconnect();
},
cancelOnError: true,
);
} catch (e) {
Console.error('Connection failed: $e');
// Register local event
_emitLocal('connect_error', e);
}
}