diff --git a/server/tools/protobuild/ss_msgid.proto b/server/tools/protobuild/ss_msgid.proto index 15982a1..7239b09 100644 --- a/server/tools/protobuild/ss_msgid.proto +++ b/server/tools/protobuild/ss_msgid.proto @@ -8,6 +8,7 @@ enum SSMessageId_e _SS_WSP_SocketDisconnect = 10; _SS_WSP_RequestTargetServer = 11; _SS_MS_ResponseTargetServer = 12; + _SS_ForceCloseSocket = 13; _SS_CMPing = 101; _SS_SMRpcError = 102; diff --git a/server/tools/protobuild/ss_proto.proto b/server/tools/protobuild/ss_proto.proto index cdc02c9..705cc84 100644 --- a/server/tools/protobuild/ss_proto.proto +++ b/server/tools/protobuild/ss_proto.proto @@ -52,3 +52,7 @@ message SS_Pong { optional int32 param1 = 1; } + +message SS_ForceCloseSocket +{ +} diff --git a/server/wsproxy/app.cc b/server/wsproxy/app.cc index 9a48ea3..d1a141f 100644 --- a/server/wsproxy/app.cc +++ b/server/wsproxy/app.cc @@ -410,6 +410,10 @@ void App::ProcessMasterServerMsg(f8::MsgHdr& hdr) void App::ProcessTargetServerMsg(f8::MsgHdr& hdr) { + if (hdr.msgid == ss::_SS_ForceCloseSocket) { + GCListener::Instance()->ForceCloseClient(hdr.socket_handle); + return; + } if (hdr.msgid < 100) { return; }