import 'dart:convert'; import 'dart:io'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:http/http.dart' as http; import 'package:socket_io_client/socket_io_client.dart' as IO; String local = Platform.isAndroid ? '10.0.2.2' : 'localhost'; String fromDevice = '192.168.1.190'; String host = fromDevice; int port = 3000; String socketString = "$scheme://$host:$port"; String scheme = 'http'; Future secureGet(String path, {Map? queryParameters}) async{ final storage = FlutterSecureStorage(); final token = await storage.read(key: 'token'); if (token == null) return null; final uri = Uri( scheme: scheme, host: host, port: port, // your host path: path, // your path queryParameters: queryParameters?.map((key, value) => MapEntry(key, value.toString())), ); return await http .get( uri, headers: { 'Authorization': 'Bearer $token', 'Content-Type': 'application/json', }, ) .timeout(const Duration(seconds: 10)); // 🚀 Timeout added } Future securePost(Map payload, String path) async{ final storage = FlutterSecureStorage(); final token = await storage.read(key: 'token'); if (token == null) return null; final uri = Uri( scheme: scheme, host: host, port: port, // your host path: path, // your path ); return await http.post( uri, headers: { 'Authorization': 'Bearer $token', 'Content-Type': 'application/json', }, body: json.encode(payload), ) .timeout(const Duration(seconds: 10)); // 🚀 Timeout added } Future regularGet(String path) async { final uri = Uri( scheme: scheme, host: host, port: port, // your host path: path, // your path ); return await http.get( uri, headers: { 'Content-Type': 'application/json', } ) .timeout(const Duration(seconds: 10)); // 🚀 Timeout added } Future regularPost(Map payload, String path) async{ final uri = Uri( scheme: scheme, host: host, port: port, // your host path: path, // your path ); return await http.post( uri, headers: { 'Content-Type': 'application/json', }, body: json.encode(payload) ).timeout(const Duration(seconds: 10)); // 🚀 Timeout added } Future connectSocket() async { final storage = FlutterSecureStorage(); final token = await storage.read(key: 'token'); if (token == null) return null; final socket = IO.io( socketString, IO.OptionBuilder() .setTransports(['websocket']) .setAuth({'token': token}) .disableAutoConnect().build(), ); socket.connect(); return socket; }