doRelayRequest method
Implementation
Future<bool> doRelayRequest(String id, RelayRequestState request) async {
if (_globalState.blockedRelays.contains(request.url)) {
Logger.log
.w("COULD NOT SEND REQUEST TO ${request.url} since relay is blocked");
return false;
}
final connected = await _relayManager.reconnectRelay(request.url,
connectionSource:
ConnectionSource.explicit // TODO improve this connection source
);
if (connected) {
RelayConnectivity? relay = _globalState.relays[request.url];
if (relay != null) {
relay.stats.activeRequests++;
try {
_relayManager.send(
relay,
ClientMsg(
ClientMsgType.kReq,
id: id,
filters: request.filters,
));
} catch (e) {
Logger.log.e("COULD NOT SEND REQUEST TO ${request.url}:", error: e);
return false;
}
}
return true;
} else {
Logger.log.e(
"COULD NOT SEND REQUEST TO ${request.url} since socket seems to be not open");
return false;
}
}