rate limit handling

This commit is contained in:
2026-01-05 20:55:37 -06:00
parent d4e7e4bb65
commit 6302018647
6 changed files with 100 additions and 13 deletions

View File

@@ -67,6 +67,23 @@ class _PeripheralScreenState extends State<PeripheralScreen> {
try {
socket = await connectSocket();
if (socket == null) throw Exception("Unsuccessful socket connection");
// Handle rate limiting errors
socket?.on("error", (data) async {
if (data is Map<String, dynamic>) {
if (data['code'] == 429) {
// Rate limited - wait and reconnect
print("Rate limited: ${data['message']}. Reconnecting in 1 second...");
socket?.disconnect();
socket?.dispose();
await Future.delayed(const Duration(seconds: 1));
if (mounted) {
initSocket();
}
}
}
});
socket?.on("success", (_) {
socket?.on("device_connected", (data) {
if (data is Map<String, dynamic>) {