connect method
void
connect()
Connect to the WebSocket server
Implementation
void connect() async {
try {
_socket = WebSocket(hostAddress);
_socket.onOpen.listen((e) {
// Initialize connection tracking
_cleanPingIntervals();
_connectionStartTime = DateTime.now().millisecondsSinceEpoch;
onOpen.call();
// Emit initial calculating state
final initialMetrics = _calculateConnectionMetrics();
onPing?.call(initialMetrics);
});
_socket.onMessage.listen((e) {
// Check if this is a ping/pong message
if (_isPingMessage(e.data)) {
_handlePingReceived();
}
onMessage.call(e.data);
});
_socket.onClose.listen((e) {
_cleanPingIntervals();
onClose.call(e.code ?? 0, e.reason ?? 'Closed for unknown reason');
});
} catch (e) {
_cleanPingIntervals();
onClose.call(500, e.toString());
}
}