Use Protobuf generated classes in System.Text.Json serialization.
// Serialize to json
string json = foo.SerializeToJson();
// Deserialize from json
FooMessage? foo = json.DeserializeToProtobufMessage<FooMessage>();
Configure hub:
services.AddSignalR()
.AddJsonProtocol(options => options.PayloadSerializerOptions = ProtobufJsonConverter.Options);
Configure client:
var connection = new HubConnectionBuilder()
.WithUrl("https://yoururl/yourhub")
.AddJsonProtocol(options => options.PayloadSerializerOptions = ProtobufJsonConverter.Options)
.Build();
// Serialize to MessagePack bytes
byte[] bytes = foo.SerializeUsingMessagePack();
// Deserialize from MessagePack bytes
FooMessage? foo = bytes.DeserializeUsingMessagePack();
Configure hub:
services.AddSignalR()
.AddMessagePackProtocol(options => options.SerializerOptions = ProtobufResolver.Options);
Configure client:
var connection = new HubConnectionBuilder()
.WithUrl("https://yoururl/yourhub")
.AddMessagePackProtocol(options => options.SerializerOptions = ProtobufResolver.Options)
.Build();