I am designing a game server which would be used for Android terminals. I've been searching for products or frameworks to use for two-way socket communication but haven't found anything worth mentioning.
Simply, I want to implement the architecture below:
In other words, one TCP connection from the client to the server, and another from the server to the client, in order to avoid always having to be connected.
Just to be clear, my main aim is for the server to be able to send data to the client, without the client having to explicitly request it. I do not want the client to have to poll the server to see if there is any new data.
What combination of design strategies, network protocols, and/or products or frameworks (if any) would be appropriate for implementing this architecture?