function interact(from, to, url) {
function pubsubActionForFrom() {
// create new node
// call _interact
}
function noPubsubActionForFrom() {
yesPubsub = pubsubActionForTo;
noPubsub = noPubsubActionForTo;
var server = JID(from).hostname;
XMPP.send(from,
_discoStanza(server),
pubsubEnabled);
}
function pubsubActionForTo() {
// create new node
// call _interact
}
function noPubsubActionForTo() {
var server = JID(from).hostname;
XMPP.send(from,
_discoStanza(server),
pubsubEnabled);
}
var yesPubsub = pubsubActionForFrom;
var noPubsub = noPubsubActionForFrom;
function pubsubEnabled(discoReply) {
if(reply.stanza.@type == 'result') {
var query = reply.stanza.ns_disco_info::query;
var supportsInstantNodes = query..feature.(@var == instant_node_feature);
if (supportsInstantNodes) {
yesPubsub();
} else {
noPubsub();
}
}
}
var server = JID(from).hostname;
XMPP.send(from,
_discoStanza(server),
pubsubEnabled);
}
}