小编Rez*_*zga的帖子

将消息包 + LZ4 压缩与 .NET Signalr 结合使用

MessagePack for C#文档指出,使用 LZ4 压缩可以实现有效负载的紧凑二进制大小。在文档中您可以使用:

var lz4Options = MessagePackSerializerOptions.Standard.WithCompression(MessagePackCompression.Lz4BlockArray);
MessagePackSerializer.Serialize(obj, lz4Options);
Run Code Online (Sandbox Code Playgroud)

所以它基本上说,在调用每个Serialize()Deserialize()方法时,您应该专门指定压缩选项。

但是,在使用.NET Signalr时,您不会直接调用这些方法。Nuget 包 Microsoft.AspNetCore.SignalR.Protocols会为您完成此操作。您只需在ConfigureServices()方法中告诉应用程序serviceCollection 执行此操作:

public void ConfigureServices(IServiceCollection services)
{
     services.AddSignalR().AddMessagePackProtocol();
}
Run Code Online (Sandbox Code Playgroud)

所以我很好奇如何为信号器指定MessagePackSerializationOptions以使用 LZ4 压缩。我已经尝试更改应用程序主要方法中的默认选项配置:

MessagePackSerializer.DefaultOptions = MessagePackSerializerOptions.Standard.WithCompression(MessagePackCompression.Lz4BlockArray);
Run Code Online (Sandbox Code Playgroud)

但首先不推荐,其次它似乎不起作用:D

.net c# msgpack signalr asp.net-core

5
推荐指数
1
解决办法
2260
查看次数

标签 统计

.net ×1

asp.net-core ×1

c# ×1

msgpack ×1

signalr ×1