private HubMessage CreateHubStreamInvocationMessage(ReadOnlySpan <byte> protobufMessage, object[] arguments) { var protobufStreamInvocationMessage = new StreamInvocationMessageProtobuf(); protobufStreamInvocationMessage.MergeFrom(protobufMessage.ToArray()); return(new StreamInvocationMessage(protobufStreamInvocationMessage.InvocationId, protobufStreamInvocationMessage.Target, arguments, protobufStreamInvocationMessage.StreamIds.ToArray()) { Headers = protobufStreamInvocationMessage.Headers }); }
private void WriteStreamInvocationMessage(StreamInvocationMessage streamInvocationMessage, IBufferWriter <byte> output) { var protobufStreamInvocationMessage = new StreamInvocationMessageProtobuf { InvocationId = streamInvocationMessage.InvocationId, Target = streamInvocationMessage.Target }; if (streamInvocationMessage.Headers != null) { protobufStreamInvocationMessage.Headers.Add(streamInvocationMessage.Headers); } if (streamInvocationMessage.StreamIds != null) { protobufStreamInvocationMessage.StreamIds.Add(streamInvocationMessage.StreamIds.Select(id => id ?? "")); } var arguments = _argumentSerializer.SerializeArguments(streamInvocationMessage.Arguments); var packedMessage = MessageDescriptor.PackMessage(HubProtocolConstants.StreamInvocationMessageType, protobufStreamInvocationMessage.ToByteArray(), arguments); output.Write(packedMessage); }