connect method
void
connect()
Connect to the WebSocket server
Implementation
void connect() async {
try {
GlobalLogger().i('TxSocket :: connect : $hostAddress');
_socket = await WebSocket.connect(hostAddress);
_socket
..pingInterval = const Duration(seconds: 10)
..timeout(const Duration(seconds: 30));
// Initialize connection tracking
_cleanPingIntervals();
_connectionStartTime = DateTime.now().millisecondsSinceEpoch;
onOpen.call();
// Emit initial calculating state
final initialMetrics = _calculateConnectionMetrics();
onPing?.call(initialMetrics);
_socket.listen(
(dynamic data) {
// Check if this is a ping/pong message
if (_isPingMessage(data)) {
_handlePingReceived();
}
onMessage.call(data);
},
onDone: () {
_cleanPingIntervals();
onClose.call(
_socket.closeCode ?? 0,
_socket.closeReason ?? 'Closed for unknown reason',
);
},
);
} catch (e) {
_cleanPingIntervals();
onClose.call(500, e.toString());
}
}