66 lines
1.6 KiB
Markdown
66 lines
1.6 KiB
Markdown
# resolve
|
|
|
|
XMPP connection methods resolution for JavaScript
|
|
|
|
`@xmpp/resolve` retrieves and sorts possible XMPP endpoints using DNS and HTTP Web Host Metadata.
|
|
|
|
## Install
|
|
|
|
```
|
|
npm install @xmpp/resolve
|
|
```
|
|
|
|
## Usage
|
|
|
|
```javascript
|
|
import resolve from "@xmpp/resolve";
|
|
|
|
// optional
|
|
const options = {
|
|
srv: [{ service: "xmpp-client", protocol: "tcp" }], // SRV records
|
|
family: undefined, // IP version; 4, 6 or undefined for both
|
|
};
|
|
|
|
resolve("jabberfr.org", options).then(console.log).catch(console.error);
|
|
```
|
|
|
|
```javascript
|
|
[
|
|
{
|
|
address: "93.113.206.189",
|
|
family: 4,
|
|
name: "xmppjs.org",
|
|
port: 5222,
|
|
priority: 5,
|
|
weight: 0,
|
|
},
|
|
{
|
|
address: "2a03:75c0:39:3458::1",
|
|
family: 6,
|
|
name: "xmppjs.org",
|
|
port: 5222,
|
|
priority: 5,
|
|
weight: 0,
|
|
},
|
|
{ address: "93.113.206.189", family: 4 },
|
|
{ address: "2a03:75c0:39:3458::1", family: 6 },
|
|
{
|
|
attribute: "_xmpp-client-websocket",
|
|
uri: "wss://xmppjs.org:443/websocket",
|
|
},
|
|
{
|
|
attribute: "_xmpp-client-xbosh",
|
|
uri: "https://xmppjs.org:443/bosh",
|
|
},
|
|
];
|
|
```
|
|
|
|
## References
|
|
|
|
- [RFC 6120 Resolution of Fully Qualified Domain Names](https://xmpp.org/rfcs/rfc6120.html#tcp-resolution)
|
|
- [XEP-0156: Discovering Alternative XMPP Connection Methods](https://xmpp.org/extensions/xep-0156.html)
|
|
- [XEP-0368: SRV records for XMPP over TLS](https://xmpp.org/extensions/xep-0368.html)
|
|
- [RFC 6415 Web Host Metadata](https://tools.ietf.org/html/rfc6415)
|
|
- [DNS configuration in Jabber/XMPP](https://prosody.im/doc/dns)
|
|
- [https://wiki.xmpp.org/web/SRV_Records](https://wiki.xmpp.org/web/SRV_Records)
|