var BOSH_SERVICE = 'http://localhost:5280/http-bind/'; var show_log = true; var localJID = null; var connection = null; var commandCenter = null; function log(msg) { var entry = $('
').append(document.createTextNode(msg)); $('#log').append(entry); } function rawInput(data) { log('RECV: ' + data); } function rawOutput(data) { log('SENT: ' + data); } function getFeatures(jid) { var cb, ecb; cb = function(result) { /* Callback */ commandCenter.getCommandNodes(function(items) { $('#output').empty(); $('#output').append(items) }); } ecb = function(result) { /* Errback */ $('#output').append("" + jid + " does NOT support AdHoc commands
"); } commandCenter.checkFeatures(jid, cb, ecb); } function onConnect(status) { if (status == Strophe.Status.CONNECTING) { log('Strophe is connecting.'); } else if (status == Strophe.Status.CONNFAIL) { log('Strophe failed to connect.'); showConnect(); } else if (status == Strophe.Status.DISCONNECTING) { log('Strophe is disconnecting.'); } else if (status == Strophe.Status.DISCONNECTED) { log('Strophe is disconnected.'); showConnect(); } else if (status == Strophe.Status.AUTHFAIL) { log('Authentication failed'); if (connection) { connection.disconnect(); } } else if (status == Strophe.Status.CONNECTED) { log('Strophe is connected.'); $('#queryJID').val(connection.domain); $('#query').show(); commandCenter = new Adhoc("#output", function() { $("").bind("click", function() { $('#output').empty(); commandCenter.getCommandNodes(function(items) { $('#output').append(items) }); }).appendTo('#output'); }); getFeatures(connection.domain); } } function showConnect() { var jid = $('#jid'); var pass = $('#pass'); var button = $('#connect').get(0); button.value = 'connect'; $('#query').hide(); pass.show(); jid.show(); $('#cred label').show(); $('#cred br').show(); $('#output').empty(); } function showDisconnect() { var jid = $('#jid'); var pass = $('#pass'); var button = $('#connect').get(0); button.value = 'disconnect'; pass.hide(); jid.hide(); $('#cred label').hide(); $('#cred br').hide(); } $(document).ready(function () { connection = new Strophe.Connection(BOSH_SERVICE); if (show_log) { $('#log_container').show(); connection.rawInput = rawInput; connection.rawOutput = rawOutput; } $("#log_toggle").click(function () { $("#log").toggle(); }); $('#cred').bind('submit', function (event) { var button = $('#connect').get(0); var jid = $('#jid'); var pass = $('#pass'); localJID = jid.get(0).value; if (button.value == 'connect') { showDisconnect(); $('#log').empty(); connection.connect(localJID, pass.get(0).value, onConnect); } else { connection.disconnect(); } event.preventDefault(); }); $('#queryForm').bind('submit', function (event) { getFeatures($('#queryJID').val()); event.preventDefault(); }); }); window.onunload = window.onbeforeunload = function() { if (connection) { connection.disconnect(); } }