Использование пакета сообщений + сжатие LZ4 с. NET Signalr - PullRequest
0 голосов
/ 20 марта 2020

Документация из MessagePack для C# гласит, что с помощью сжатия LZ4 вы можете получить компактные двоичные размеры вашей полезной нагрузки. в документах вы можете использовать: enter code here

var lz4Options = MessagePackSerializerOptions.Standard.WithCompression(MessagePackCompression.Lz4BlockArray);
MessagePackSerializer.Serialize(obj, lz4Options);

Таким образом, в основном говорится, что при вызове всех методов Serialize () и Deserialize () вы должны указать исключительно параметры сжатия.

Но при работе с . NET Signalr эти методы напрямую не вызывать. Пакет Nuget Microsoft.AspNetCore.SignalR.Protocols сделает это за вас. вам нужно только указать приложениям serviceCollection сделать это в ConfigureServices () метод:

public void ConfigureServices(IServiceCollection services)
{
       services.AddSignalR().AddMessagePackProtocol();
}

Так что мне любопытно, как указать MessagePackSerializationOptions для сигнализатора для используйте сжатие LZ4. Я уже пытался изменить настройку параметров по умолчанию в основном методе приложения:

MessagePackSerializer.DefaultOptions = MessagePackSerializerOptions.Standard.WithCompression(MessagePackCompression.Lz4BlockArray);

Но, во-первых, это не рекомендуется, а во-вторых, похоже, не работает: D

...