closeNostrRequestById method
Implementation
Future<void> closeNostrRequestById(String id) async {
NostrRequest? nostrRequest = nostrRequests[id];
if (nostrRequest!=null) {
for (var url in nostrRequest.requests.keys) {
if (isWebSocketOpen(url)) {
try {
// webSockets[url]!.sendMessage(jsonEncode(["CLOSE", nostrRequest.id]));
send(url,jsonEncode(["CLOSE", nostrRequest.id]));
} catch (e) {
print(e);
}
}
}
try {
nostrRequest.controller.close();
} catch (e) {
print(e);
}
nostrRequests.remove(id);
/***********************************/
Map<int?,int> kindsMap = {};
nostrRequests.forEach((key, request) {
int? kind;
if (request.requests.isNotEmpty && request.requests.values.first.filters.first.kinds!=null && request.requests.values.first.filters.first.kinds!.isNotEmpty) {
kind = request.requests.values.first.filters.first.kinds!.first;
}
int? count = kindsMap[kind];
count ??= 0;
count++;
kindsMap[kind] = count;
});
print(
"----------------NOSTR REQUESTS CLOSE SOME: ${nostrRequests.length} || $kindsMap");
/***********************************/
}
}