How Replicate AnimMontage?

Now, my problem is ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

for example, Server, Client1, Client2

Client1 can see Server’s AnimMontage

But Server can’t see Client1’s AnimMontage

And also, Client2 can’t see Client1’s AnimMontage

MyCharacter.h

{

UPROPERTY(VisibleAnywhere, BlueprintReadOnly, replicated)
UAnimMontage* AttackMontage;

    UFUNCTION(Server ,Reliable, WithValidation)
void InvokeAttack();//when player click mouse left, executing this function
void InvokeAttack_Implementation();
bool InvokeAttack_Validate();


}

MyCharacter.cpp

AMyCharacter::AMyCharacter()

{

static ConstructorHelpers::FObjectFinderATTACK_MONTAGE(TEXT("/Game/AttackTest.AttackTest"));

if (ATTACK_MONTAGE.Succeeded())
{
	 AttackMontage = ATTACK_MONTAGE.Object;
}

//Setting a AnimMontage
bReplicates = true;

}

void AMyCharacter::GetLifetimeReplicatedProps(TArray & OutLifetimeProps) const
{

Super::GetLifetimeReplicatedProps(OutLifetimeProps);

   ...........

DOREPLIFETIME(AMyCharacter, AttackMontage );

}

void AMyCharacter::InvokeAttack_Implementation()
{

GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("ATTACK"));
PlayAnimMontage(AttackMontage , 1.0f, NAME_None);

}

bool AMyCharacter::InvokeAttack_Validate()
{
return true;
}