diff --git a/game_server/net/session.py b/game_server/net/session.py index 41533f8..0bd5547 100644 --- a/game_server/net/session.py +++ b/game_server/net/session.py @@ -9,6 +9,7 @@ from rail_proto import lib as protos from game_server.game.player.player_manager import PlayerManager from game_server.dummy import dummyprotolist import traceback +from utils.time import cur_timestamp_ms class PlayerSession: def __init__(self, transport, session_id, client_addr, db): @@ -16,6 +17,7 @@ class PlayerSession: self.session_id = session_id self.client_addr = client_addr self.kcp = Kcp(session_id, self.send_output) + self.kcp.set_wndsize(sndwnd=256, rcvwnd=256) self.kcp.set_nodelay(1, 5, 2, 0) self.is_destroyed = False self.db = db @@ -23,6 +25,7 @@ class PlayerSession: self.player = PlayerManager() self.active = False self.last_received = asyncio.get_event_loop().time() + self.connect_time_ms = cur_timestamp_ms() def update_last_received(self): self.last_received = asyncio.get_event_loop().time() @@ -51,7 +54,8 @@ class PlayerSession: async def consume(self, data): self.kcp.input(data) - self.kcp.update(asyncio.get_running_loop().time()) + self.kcp.update(self.time()) + self.kcp.flush() while True: packet = self.kcp.recv() @@ -59,7 +63,7 @@ class PlayerSession: break await self.handle_packet(packet) - self.kcp.update(asyncio.get_running_loop().time()) + #self.kcp.update(self.time()) async def handle_packet(self, packet): net_packet = NetPacket.from_bytes(packet) @@ -130,4 +134,9 @@ class PlayerSession: async def send(self, packet): self.kcp.send(packet.to_bytes()) self.kcp.flush() - self.kcp.update(asyncio.get_running_loop().time()) + cmd_id = packet.cmd_type + request_name = cmd.get_key_by_value(cmd_id) + Info(f"Sent cmd: {request_name}({cmd_id})") + + def time(self): + return (cur_timestamp_ms()) - self.connect_time_ms