Server: implement JOIN/JOIN_ACK/JOIN_DENY handling, input parsing/relay, spawn logic, apples maintenance; fix InMemoryTransport to address specific peer; add state_full encoder
- Protocol: join parser, join_ack/deny builders, input parser, state_full builder - Server: on_datagram dispatch, spawn per rules (prefer length 3 else 1), join deny if no cell, immediate input_broadcast relay - Model: occupancy map and helpers - Transport: deliver to specified peer in in-memory mode
This commit is contained in:
@@ -32,11 +32,9 @@ class InMemoryTransport(DatagramServerTransport):
|
||||
self._peers.append(peer)
|
||||
|
||||
async def send(self, data: bytes, peer: TransportPeer) -> None:
|
||||
# In-memory: deliver to all except sender to simulate broadcast domain
|
||||
for p in self._peers:
|
||||
if p is peer:
|
||||
continue
|
||||
await self._on_datagram(data, p)
|
||||
# In-memory: deliver only to the addressed peer
|
||||
if peer in self._peers:
|
||||
await self._on_datagram(data, peer)
|
||||
|
||||
async def run(self) -> None:
|
||||
# Nothing to do in in-memory test transport
|
||||
@@ -58,4 +56,3 @@ class QuicWebTransportServer(DatagramServerTransport):
|
||||
|
||||
async def run(self) -> None:
|
||||
raise NotImplementedError("QUIC server not implemented in skeleton")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user