feat: close connection to client when relay is deactivated
This commit is contained in:
parent
f56e9e2e56
commit
4db031c10e
1 changed files with 14 additions and 0 deletions
|
|
@ -53,6 +53,12 @@ class NostrClientManager:
|
||||||
self.active_relays.append(relay_id)
|
self.active_relays.append(relay_id)
|
||||||
else:
|
else:
|
||||||
self.active_relays = [r for r in self.active_relays if r != relay_id]
|
self.active_relays = [r for r in self.active_relays if r != relay_id]
|
||||||
|
await self.stop_clients_for_relay(relay_id)
|
||||||
|
|
||||||
|
async def stop_clients_for_relay(self, relay_id: str):
|
||||||
|
for client in self.clients:
|
||||||
|
if client.relay_id == relay_id:
|
||||||
|
await client.stop(reason=f"Relay '{relay_id}' has been deactivated.")
|
||||||
|
|
||||||
|
|
||||||
class NostrClientConnection:
|
class NostrClientConnection:
|
||||||
|
|
@ -77,6 +83,14 @@ class NostrClientConnection:
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning(e)
|
logger.warning(e)
|
||||||
|
|
||||||
|
async def stop(self, reason: Optional[str]):
|
||||||
|
try:
|
||||||
|
message = reason if reason else "Server closed webocket"
|
||||||
|
await self.websocket.send_text(json.dumps(["NOTICE", message]))
|
||||||
|
await self.websocket.close()
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
async def notify_event(self, event: NostrEvent) -> bool:
|
async def notify_event(self, event: NostrEvent) -> bool:
|
||||||
for filter in self.filters:
|
for filter in self.filters:
|
||||||
if filter.matches(event):
|
if filter.matches(event):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue