According to the wiki, XMPP could use HTTP in two ways: one is polling and other one is binding. This binding model of notification is more efficient than polling, where many of the polls return no new data.
Can anybody explain to me,
XEP-0206 and XEP-0124 specify Bidirectional-streams Over Synchronous HTTP (BOSH), which is the protocol for the binding approach. I don't think agsXmpp supports BOSH, but their newer version (Matrix) does, as well as Jabber-Net.