Search⌘ K
AI Features

Message Protocol Configuration

Explore the configuration of SignalR's JSON message protocol to customize property naming, encoding, serialization behavior, numeric handling, and buffer sizes. Understand how to apply advanced serialization settings to improve data exchange efficiency and meet specific application requirements in real-time ASP.NET Core apps.

We'll cover the following...

At the end of the AddSignalR ...

C#
.AddJsonProtocol(options => {
options.PayloadSerializerOptions.PropertyNamingPolicy = null;
options.PayloadSerializerOptions.Encoder = null;
options.PayloadSerializerOptions.IncludeFields = false;
options.PayloadSerializerOptions.IgnoreReadOnlyFields = false;
options.PayloadSerializerOptions.IgnoreReadOnlyProperties = false;
options.PayloadSerializerOptions.MaxDepth = 0;
options.PayloadSerializerOptions.NumberHandling = JsonNumberHandling.Strict;
options.PayloadSerializerOptions.DictionaryKeyPolicy = null;
options.PayloadSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.Never;
options.PayloadSerializerOptions.PropertyNameCaseInsensitive = false;
options.PayloadSerializerOptions.DefaultBufferSize = 32_768;
options.PayloadSerializerOptions.ReadCommentHandling = System.Text.Json.JsonCommentHandling.Skip;
options.PayloadSerializerOptions.ReferenceHandler = null;
options.PayloadSerializerOptions.UnknownTypeHandling = JsonUnknownTypeHandling.JsonElement;
options.PayloadSerializerOptions.WriteIndented = true;
Console
.WriteLine($"Number of default JSON converters: {options.PayloadSerializerOptions.Converters.Count}");
});

Even though JSON protocol is enabled by default, using the AddJsonProtocol method allows us to fine-tune it. Pretty much all of the ...