import 'package:web_socket_channel/io.dart'; import '../global.dart' as global; IOWebSocketChannel? channel; bool connected = false; Map map = {}; Future reloadWebsockets() async { closeSockets(); for (int i = 0; i < global.settings!.identities.length; i++) { final idName = global.settings!.identities.keys.toList()[i]; final id = global.settings!.identities[idName]!; var query = { "stream": "user", "access_token": id.token, }; var host = id.webSocketUrl; host = host.replaceFirstMapped("wss://", (match) => ""); host = host.replaceFirstMapped("ws://", (match) => ""); final uri = Uri( scheme: "wss", host: host, path: "/api/v1/streaming", queryParameters: query); map.addAll( { idName: IOWebSocketChannel.connect( uri, headers: global.defaultHeaders, ), }, ); } } void closeSockets() { for (int i = 0; i < map.length; i++) { String key = map.keys.toList()[i]; map[key]!.sink.close(); } }