Skip to content

Commit 568e876

Browse files
committed
[增加]1. 增加消息压缩器和解压缩器的设置
1 parent 426b06e commit 568e876

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

GameFrameX.Hotfix/Common/HotfixBridgeByServer.cs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using GameFrameX.NetWork.Messages;
99
using GameFrameX.SuperSocket.Connection;
1010
using GameFrameX.SuperSocket.Primitives;
11+
using GameFrameX.SuperSocket.ProtoBase;
1112
using GameFrameX.SuperSocket.Server;
1213
using GameFrameX.SuperSocket.Server.Abstractions;
1314
using GameFrameX.SuperSocket.Server.Abstractions.Session;
@@ -52,6 +53,8 @@ public async void RunServer(bool reload)
5253

5354
private async Task StartServer()
5455
{
56+
messageEncoderHandler.SetCompressionHandler(new BaseMessageCompressHandler());
57+
messageDecoderHandler.SetDecompressionHandler(new BaseMessageDecompressHandler());
5558
if (Setting.WsPort > 0)
5659
{
5760
LogHelper.Info("启动 WebSocket 服务器开始...");
@@ -75,6 +78,9 @@ private async Task StartServer()
7578
.UseInProcSessionContainer()
7679
.BuildAsServer();
7780

81+
// 设置消息解压缩的处理器
82+
var baseMessageDecoderHandler = (BaseMessageDecoderHandler)tcpService.ServiceProvider.GetService(typeof(IPackageDecoder<INetworkMessage>));
83+
baseMessageDecoderHandler?.SetDecompressionHandler(new BaseMessageDecompressHandler());
7884
await tcpService.StartAsync();
7985
LogHelper.Info("启动 TCP 服务器完成...");
8086
}
@@ -127,8 +133,8 @@ private async ValueTask WebSocketMessageHandler(WebSocketSession session, WebSoc
127133
return;
128134
}
129135

130-
var bytes = message.Data;
131-
var buffer = bytes.ToArray();
136+
var bytes = message.Data;
137+
var buffer = bytes.ToArray();
132138
var messageObject = messageDecoderHandler.Handler(buffer);
133139
await MessagePackageHandler(session, messageObject);
134140
}
@@ -154,7 +160,7 @@ private async ValueTask MessagePackageHandler(IAppSession appSession, INetworkMe
154160
return;
155161
}
156162

157-
handler.Message = message;
163+
handler.Message = message;
158164
handler.NetWorkChannel = GameClientSessionManager.GetSession(appSession.SessionID);
159165
await handler.Init();
160166
await handler.InnerAction();
@@ -164,7 +170,7 @@ private async ValueTask MessagePackageHandler(IAppSession appSession, INetworkMe
164170
private void ConfigureWebServer(HostBuilderContext context, IConfigurationBuilder builder)
165171
{
166172
builder.AddInMemoryCollection(new Dictionary<string, string>()
167-
{ { "serverOptions:name", "GameServer" }, { "serverOptions:listeners:0:ip", "Any" }, { "serverOptions:listeners:0:port", Setting.WsPort.ToString() } });
173+
{ { "serverOptions:name", "GameServer" }, { "serverOptions:listeners:0:ip", "Any" }, { "serverOptions:listeners:0:port", Setting.WsPort.ToString() } });
168174
}
169175

170176
public async Task StopServer()

0 commit comments

Comments
 (0)