BOSH HTTP Pre-Bind

Pre-binding is used to speed up the XMPP authentication process for anonymous guest sessions within LibraryH3lp for XMPP over BOSH. Pre-bind consolidates a process which normally requires the exchange of several stanzas between client and server into a single HTTP request.

Authentication

No authentication is required.

HTTP and HTTPS

Requests are served over HTTPS. To ensure data privacy, unencrypted HTTP is not supported.

URI

/http-pre-bind

HTTP pre-bind Resource

HTTP GET

Not supported.

HTTP POST

Returns an XML resource binding response per XEP-0206. The node value of the anonymous guest JID is formed in accordance with RFC 4122. For example, 407795552613373888661268@libraryh3lp.com.

Request payload

A POST request must deliver an XML payload that consists of a single body element with the following attributes:

.
Attribute Description
to Always libraryh3lp.com.
rid request ID
wait The longest time (in seconds) that the connection manager is allowed to wait before responding to any request during the session. This enables the client to limit the delay before it discovers any network failure, and to prevent its HTTP/TCP connection from expiring due to inactivity.
hold The maximum number of requests the connection manager is allowed to keep waiting at any one time during the session. If the client is not able to use HTTP Pipelining then this SHOULD be set to 1.

Example

POST /http-pre-bind
<body to='libraryh3lp.com' rid='2040794906' wait='30' hold='1'/>

<body xmlns='https://jabber.org/protocol/httpbind'
      sid='e244ef85cedea0f3845589d4b2d9e05e4f5b3611'
      rid='2040794906'>
  <iq id='_bind_auth_2'
      type='result'>
    <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>
      <jid>
        407795552613373888661268@libraryh3lp.com/30317234133738886243159
      </jid>
    </bind>
  </iq>
</body>

HTTP PUT

Not supported.

HTTP DELETE

Not supported.