We are registering users via xmpp, and handling relationships manually. then the browser will automatically send subscription requests on a page load, according to the roster sent from the web server (then sends back an ajax once the roster is updated to keep things in synch). the users properly appear in the roster, however they do not appear to actually be subscribed

using strophe, we're sending:

$iq({jid: Drupal.settings.dxmpp.roster[user].jid}).c('set', {xmlns: 'jabber:iq:roster'});
dxmppConnection.sendIQ(iq);
 dxmppConnection.send($pres({
 to: Drupal.settings.dxmpp.roster[user].jid,
 'type': 'subscribe'
 }));

where dxmppConnection is the strophe connection. however, it fails. thus, our users don't appear to receive presence status updates from other users in their personal roster.

Comments

aaron’s picture

forgot the last stanza. Here's the whole thing:

var iq = $iq({jid: Drupal.settings.dxmpp.roster[user].jid}).c('set', {xmlns: 'jabber:iq:roster'});
        dxmppConnection.sendIQ(iq);

        dxmppConnection.send($pres({
          to: Drupal.settings.dxmpp.roster[user].jid,
          'type': 'subscribe'
        }));
        dxmppConnection.send($pres({
          to: Drupal.settings.dxmpp.roster[user].jid,
          'type': 'subscribed'
        }));
aaron’s picture

Status: Active » Fixed

it appears that unsubscribing before subscribing works. seems as though the xmpp queue gets clogged or something. marking fixed now.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.