PlayerController or PlayerState to replicate

Hello again UE4 community!

This time i’m trying to create a multiplayer chat with multiple channels (global, private, clan, party, etc). For that I’m using an RPC function on PlayerController, the function is called on the server and the problem is how to replicate the messages for the appropriate client depending on the channel being used.

So, should i use PlayerController or PlayerState and if i use playerController how can i get the playerController of the all clients connected. Or there are an other way to do that.

Thanks Demian!