네, retrofit으로는 안됩니다.
통신 방식은 소켓이 커넥티드 된 상태와 커넥트리스 두가지 방식으로 크게 나눌 수 있습니다.
리트로핏도 소켓을 사용합니다.
커넥트리스 방식은 주로 웹서버가 많이 사용하는데요,
클라이언트의 요청에 대해서 답변을 처리하는 방식으로 구동됩니다.
커넥티드는 온라인 게임, 채팅 등의 서비스에서 쓰입니다.
소켓이 연결되어 있는 상태이므로, 원할 때 메시지를 보낼 수 있습니다.
당연히 후자가 서버의 리소스를 많이 사용할 가능성이 큽니다.
그리고 서버마다 처리할 수 있는 소켓의 한계가 있습니다. (잘만들면 한서버에 만개의 소켓 접속이 된 상태에서 동작하고, 못만들면 천개의 소켓도 못사용하죠. 또한 통신량이 헤비하면 또 그렇죠. 서버가 화상 통화서버라면, 몇십명 커버를 못하죠)
실시간으로 A가 보낸 메시지를 B에게 최대한 빨리 보내야 한다면 소켓방식으로 사용해야 합니다.
만약에 1분에 한번씩 서버에 메시지가 있는지 확인 하는 Polling 방식이라면,
대화를 Redis나 DB에 보관하고, Retrofit으로 계속 조회하는 방법이 있을 수 있습니다.
그러나 공부를 하는단계라면, 소켓 기반 채팅을 사용해 보기를 바랍니다.
Android Socket Chatting Samples 같은 키워드로 검색을 해서 스스로 이해할 수 있는 수준의 샘플을 몇개 받아서 그 중 동작되는 것 중에서 맘에 드는 것을 골라 좀 더 딥하게 들여다 보세요.
소켓 샘플은 github에 있는 것은 복잡할 것입니다. 간혹 강좌 식으로 되어 있는 샘플이 있으면 좀 간단하겠죠.
너무 복잡하면, 이해하기 힘들기 때문에, 단계별로 접근해야 합니다.