fix kcp issue
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user