Чтобы установить клиентское <-> клиентское соединение, один клиент может отправить сообщение на сервер, который передает сообщение другому клиенту.Сообщение будет включать в себя IP-адрес клиента, порт, все, что необходимо для непосредственного подключения к первому клиенту.
Это распространенный метод для передачи файлов в клиентах IM и реального потока мультимедиа в SIP.Обязательно следите за проблемами межсетевого экрана, если клиенты находятся в разных сетях - см. Обходы STUN, TURN и ICE.
Возможно, вы сможете (повторно) использовать существующую реализацию Jabber (XMPP) для этого.