From afa56e30125092686fe76f131664699e859a5baf Mon Sep 17 00:00:00 2001 From: BrennanConroy Date: Wed, 4 Apr 2018 07:11:16 -0700 Subject: [PATCH] MsgPack perf (#1845) --- .../Internal/Protocol/MessagePackHubProtocol.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.AspNetCore.SignalR.Protocols.MsgPack/Internal/Protocol/MessagePackHubProtocol.cs b/src/Microsoft.AspNetCore.SignalR.Protocols.MsgPack/Internal/Protocol/MessagePackHubProtocol.cs index ec75f9468e..4789637006 100644 --- a/src/Microsoft.AspNetCore.SignalR.Protocols.MsgPack/Internal/Protocol/MessagePackHubProtocol.cs +++ b/src/Microsoft.AspNetCore.SignalR.Protocols.MsgPack/Internal/Protocol/MessagePackHubProtocol.cs @@ -322,7 +322,11 @@ namespace Microsoft.AspNetCore.SignalR.Internal.Protocol packer.PackString(message.InvocationId); } packer.PackString(message.Target); - packer.PackObject(message.Arguments, SerializationContext); + packer.PackArrayHeader(message.Arguments.Length); + foreach (var arg in message.Arguments) + { + packer.PackObject(arg, SerializationContext); + } } private void WriteStreamInvocationMessage(StreamInvocationMessage message, Packer packer) @@ -332,7 +336,11 @@ namespace Microsoft.AspNetCore.SignalR.Internal.Protocol PackHeaders(packer, message.Headers); packer.PackString(message.InvocationId); packer.PackString(message.Target); - packer.PackObject(message.Arguments, SerializationContext); + packer.PackArrayHeader(message.Arguments.Length); + foreach (var arg in message.Arguments) + { + packer.PackObject(arg, SerializationContext); + } } private void WriteStreamingItemMessage(StreamItemMessage message, Packer packer)