diff --git a/server/wsproxy/GCListener.cc b/server/wsproxy/GCListener.cc index fe1aca0..9c47c52 100644 --- a/server/wsproxy/GCListener.cc +++ b/server/wsproxy/GCListener.cc @@ -243,4 +243,12 @@ std::shared_ptr GCListener::GetKcpSessionBySocketHandle(int socket_h void GCListener::ProcUdpPacket(a8::UdpPacket* pkt) { long long key = pkt->GetRemoteKey(); + auto session = GetKcpSessionByRemoteKey(key); + if (!session) { + ++kcp_socket_handle_; + session = std::make_shared(); + session->Init(pkt); + kcp_session_addr_hash_[key] = session; + } + session->OnRecvPacket(pkt); }