I'm intimately familiar with the relevant issues. That the client initiates the connection does not make it "pull", you're confusing distinct issues. Push is almost always implemented with long-lived connections initiated by the client side which remain idle save for periodic keepalives until there is actual data to transmit.
http://en.wikipedia.org/wiki/Push_technology