Swapping Player Controllers

The experimental project I’m working on has two servers and one client. Server A and Server B communicate through a private protocol, keeping themselves in sync. However, on the client side, I would like to dynamically move or switch the connection from one server to the other, so Server B would then update Server A, and then after some time I would like to switch back, and so on.

I have no problem coming up with a protocol of my own and synchronizing the servers, however I’m a bit confused as to how to “move” the client from server A to server B, ideally the client would not be aware of or hindered by this change.

Any suggestions as to what objects I need or how I might accomplish this?

From my understanding, replication is handled via the PlayerController class on the Client through a similar object on the Server. Basically I want Server B’s PlayerController to take up the role of Server A’s PlayerController, Server A’s player-controller would then be taken over by Server B’s player controller and the client would take over Player B’s player controller, by I will of course handle synchronization of game-state myself.