Let's take the most common use case. Assume you want to be connected to your Jabber account from two locations: home and work. The resource configuration for each of your clients can be named exactly as such. You can establish an almost unlimited number of connections into the same Jabber account, provided that each connection is given a unique resource name.
Now that you have multiple connections, you will want to control how and when messages are directed to each. This is where priorities come into play.
Here are the basic rules for priorities:
- The resource with the highest priority at any given time will be the one which receives incoming messages.
- If two or more resources have the same priority, all resources with said priority will receive incoming messages.
- If all connected resources have a negative priority, incoming messages will be queued server-side until one of the resources resets priority to be positive.
- Home: Active (40), Away (30)
- Work: Active (41), Away (31)
- Mobile: Active (42), Away (32)
The most popular Jabber client these days is Pidgin. Unfortunately it does not support configuration of priorities with a default installation. Instead, it hard codes priorities to 1 and 0, for active and away, respectively. However, you can get around this limitation by installing the Purple Pidgin Plugin Pack. There are a number of plugins included but the one we care about is "xmppprio". Once enabled, two new configuration elements will become available in your account configuration to set priorities.
Alternatively, check out Gajim (what I use) or Psi, both of which are more complete (in terms of XEP implementations) clients. And while I have you clicking around, I have a bug open against Pidgin (related to priorities) which could use some voting to get prioritized.