loris/lib/business_logic/websocket.dart

36 lines
877 B
Dart
Raw Normal View History

2022-08-15 13:08:37 +00:00
import 'package:web_socket_channel/io.dart';
import '../global.dart' as global;
2022-08-13 16:14:12 +00:00
2022-08-15 13:08:37 +00:00
IOWebSocketChannel? channel;
2022-08-13 16:14:12 +00:00
bool connected = false;
2022-08-15 13:08:37 +00:00
Map<String, IOWebSocketChannel> map = {};
Future<void> 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]!;
final uri = Uri.parse(
"${id.webSocketUrl}/api/v1/streaming",
);
Map<String, String> headers = id.getAuthHeaders();
headers.addAll(global.defaultHeaders);
map.addAll(
{
idName: IOWebSocketChannel.connect(
uri,
headers: headers,
),
},
);
}
}
void closeSockets() {
for (int i = 0; i < map.length; i++) {
String key = map.keys.toList()[i];
map[key]!.sink.close();
}
}