jabber:iq:oob
We’ve already seen a form of the oob—“Out-Of-Band”—namespace in action, in the imaginary conversation in
Chapter 1, where jabber:x:oob was used to pass information about a third-party file location, in the form of a Uniform Resource Locator (URL). The word “band” here refers to the bandwidth, or connection, between the client and the server. The point of an
out-of-band connection is that it’s
independent of that client-to-server connection (it typically
is a connection from one client directly to another), and so doesn’t
impact the traffic or bandwidth on that connection. This makes sense
when you consider that out-of-band connections are typically used for
exchanging large volumes of data, such as binary files.
The jabber:iq:oob namespace is used for pretty much
the same thing, except that its usage describes a very simple handshake
between two Jabber clients to exchange a file between themselves. (Yes, real
peer-to-peer for the purists.) The exchange is made using HTTP.
Typically, the client sending the
file will start listening for HTTP requests only at the beginning
of the transfer process and stop listening at the end of the transfer
process. The handshake is used to coordinate the process.
Note
It’s worth pointing out here that HTTP-based peer-to-peer transfers are at the mercy of firewalls, Network Address Translation (NAT) mechanisms, and so on. There is some work underway to build a proxy mechanism—the Proxy Accept Socket Service (PASS). Details can be ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access