basic working mvp
This commit is contained in:
2026-10-07 15:12:38 +03:00
parent 785a6980f6
commit fac12b2ea8
24 changed files with 1696 additions and 1 deletions

View File

@@ -0,0 +1 @@
from .tcp import TCP

View File

@@ -0,0 +1,19 @@
import asyncio
from .handler import handle
class TCP:
def __init__(self, addr, port, session):
self.addr = addr
self.port = port
self.session = session
async def run(self):
server = await asyncio.start_server(
lambda r, w: handle(r, w, self.session),
self.addr,
self.port,
)
async with server:
await server.serve_forever()

View File

@@ -0,0 +1,15 @@
import json
class Connection:
def __init__(self, reader, writer):
self.reader = reader
self.writer = writer
async def send(self, packet):
data = (json.dumps(packet) + "\n").encode()
self.writer.write(data)
await self.writer.drain()
async def close(self):
self.writer.close()
await self.writer.wait_closed()

View File

@@ -0,0 +1,19 @@
from .connection import Connection
import json
async def handle(reader, writer, session):
connection = Connection(reader, writer)
uid = await session.new(connection)
try:
while True:
raw = await reader.readline()
if not raw : break
packet = json.loads(raw)
await session.feed(uid, packet)
finally:
await session.close(uid)