connect method
void
connect()
Implementation
void connect() {
try {
_channel = WebSocketChannel.connect(Uri.parse(url));
// Send auth data on connection
_channel!.sink.add(jsonEncode(authData));
// Reset reconnect delay on successful connection
_reconnectDelay = 1000;
// Start ping/pong interval (every 30 seconds)
_pingTimer?.cancel();
_pingTimer = Timer.periodic(const Duration(seconds: 30), (timer) {
if (_channel != null) {
send({'type': 'ping'});
}
});
// Listen to incoming messages
_channel!.stream.listen(
(message) {
if (_onMessage != null) {
_onMessage!(MessageEvent(data: message));
}
},
onError: (error) {
_handleDisconnect();
},
onDone: () {
_handleDisconnect();
},
);
} catch (e) {
_handleDisconnect();
}
}