@xmpp/resource-binding

XMPP resource binding for JavaScript

Usage no npm install needed!

<script type="module">
  import xmppResourceBinding from 'https://cdn.skypack.dev/@xmpp/resource-binding';
</script>

README

resource-binding

Resource binding for @xmpp/client.

Included and enabled in @xmpp/client.

Usage

Resource is optional and will be chosen by the server if omitted.

string

const { xmpp } = require("@xmpp/client");
const client = xmpp({ resource: "laptop" });

function

Instead, you can provide a function that will be called every time resource binding occurs (every (re)connect).

Uses cases:

  • Have the user choose a resource every time
  • Do not ask for resource before connection is made
  • Debug resource binding
  • Perform an asynchronous operation to get the resource
const { xmpp } = require("@xmpp/client");
const client = xmpp({ resource: bindResource });

async function bindResource(bind) {
  console.debug("bind");
  const value = await prompt("enter resource");
  console.debug("binding");
  try {
    const { resource } = await bind(value);
    console.debug("bound", resource);
  } catch (err) {
    console.error(err);
    throw err;
  }
}

References

RFC 6120 Resource Binding