This question depends on your implementation: Google XMPP Client Talk, for example, uses a PUSH alert with long open TCP connections, so battery consumption is relatively low. Other implementations may use different methods, so you should check this out.
source share