from .noSysModule import NoSysModule from .events import Events from .peers import Peer from libs.fspn.protocol.server import Server from libs.fspn.protocol.connection import Connection class NoSysModuleServer(NoSysModule, Server): def __init__(self, nosys_core): NoSysModule.__init__(self, nosys_core) Server.__init__(self) self.host = "0.0.0.0" self.port = 0 self.clients : dict[str, Peer] = {} def setup(self): self.nosys_core.subscribe_event(Events.PEER_CONNECTED, self._on_peer_connected) self.nosys_core.subscribe_event(Events.PEER_DISCONNECTED, self._on_peer_disconnected) def run_server(self, user_id): self.nosys_core.servers.run_server(self, user_id, (self.host, self.port)) def on_server_connection(self, event): print("CONNECTION RAW") connection: Connection = event.source peer = Peer(connection.id, connection) self.nosys_core.peers.add_peer(peer) self.clients[peer.id] = peer self.nosys_core.connections._on_connection(event) def on_server_disconnection(self, event): print("DISCONNECTION RAW") self.nosys_core.connections._on_disconnection(event) def on_server_message(self, event): print("MESSAGE RAW") self.nosys_core.dispatcher.on_message(event) def _on_peer_connected(self, event): peer:Peer = event.peer print(peer.id, self.clients) if peer.id in self.clients: print("PEER CONNECTED") self.on_connection(peer) def _on_peer_disconnected(self, event): peer:Peer = event.peer if peer.id in self.clients: print("PEER DISCONNECTED") self.on_disconnection(peer) def on_connection(self, peer:Peer): pass def on_disconnection(self, peer:Peer): pass