From 97ce74378d2b5c868f6b2764308a806cca054b81 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sun, 23 Apr 2023 17:52:27 +0800 Subject: [PATCH] 1 --- server/wsproxy/longsession.cc | 5 ++++- server/wsproxy/longsession.h | 7 ++++++- server/wsproxy/longsessionmgr.cc | 9 +++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/server/wsproxy/longsession.cc b/server/wsproxy/longsession.cc index a2148f8..a798146 100644 --- a/server/wsproxy/longsession.cc +++ b/server/wsproxy/longsession.cc @@ -3,7 +3,10 @@ #include "longsession.h" #include "kcpsession.h" -void LongSession::Init() +#include "ss_msgid.pb.h" +#include "ss_proto.pb.h" + +void LongSession::Init(f8::MsgHdr& hdr, const ss::SS_CMKcpHandshake& msg) { } diff --git a/server/wsproxy/longsession.h b/server/wsproxy/longsession.h index 2c668b7..284e27c 100644 --- a/server/wsproxy/longsession.h +++ b/server/wsproxy/longsession.h @@ -1,12 +1,17 @@ #pragma once +namespace ss +{ + class SS_CMKcpHandshake; +} + class KcpSession; class LongSession { public: - void Init(); + void Init(f8::MsgHdr& hdr, const ss::SS_CMKcpHandshake& msg); void UnInit(); void Update(long long tick); diff --git a/server/wsproxy/longsessionmgr.cc b/server/wsproxy/longsessionmgr.cc index 252e152..2632563 100644 --- a/server/wsproxy/longsessionmgr.cc +++ b/server/wsproxy/longsessionmgr.cc @@ -10,6 +10,7 @@ #include "jsondatamgr.h" #include "longsession.h" #include "kcpsession.h" +#include "GCListener.h" #include "ss_msgid.pb.h" #include "ss_proto.pb.h" @@ -59,7 +60,15 @@ void LongSessionMgr::_SS_CMKcpHandshake(f8::MsgHdr& hdr, const ss::SS_CMKcpHands return; } auto session = std::make_shared(); + session->Init(hdr, msg); + socket_handle_hash_[session->GetKcpSession()->GetSocketHandle()] = session; + respmsg.set_conv(session->GetKcpSession()->GetSocketHandle()); + { + long long secret_key = session->GetKcpSession()->GetSecretKey(); + respmsg.set_secret_key(&secret_key, sizeof(secret_key)); + } + GCListener::Instance()->SendMsg(hdr.socket_handle, respmsg); } std::shared_ptr LongSessionMgr::GetSession(int socket_handle)