It appears that Candy uses Strophe.js under the hood, which is the same library I’m using (successfully) to connect to Openfire. Should work.
My guess, without any more information, is that the username, password, or domain is being screwed up somehow, either by you (no offense) or through some kind of mangling that occurs in the code. Are you putting in the full jid, and not just the user name? That is, test@example.com, not just ‘test’? At a glance, it appears that it requires the full jid. To enable login without the portion after the ampersand, I think you’d need to modify Candy a bit, appending your chosen domain after the “jidOrHost” variable somewhere inside the definition for Candy.Core.connect()
If you’ve tried it with the full JID already, I’d try dumping some of the variables from Candy.Core.connect() to the console to see exactly what’s being sent. If you’re not familiar with using the javascript console, the short version is that you add “console.log([some variable name]);” wherever you want to see the value of a variable, then open the console in your browser, then load the page and attempt to do whatever it is that you’re trying to troubleshoot. Chrome and Safari have built-in Javascript consoles (though you’ll need to enable it in Safari) and for Firefox there is the Firebug plugin that provides something similar. You should be able to find tutorials on how to enable/use these features.
Alternatively, since there are only a few variables really at issue here, you could skip all of that and simply type “alert([variable name]);” for each variable you want to see, to generate a pop up displaying the variable’s contents. For example, you could insert, right after the line containing “self.connect = function(jidOrHost, password) {”:
alert(jidOrHost);
alert(password);
This is all in candy.bundle.js, which is the editable version of the library–candy.min.js won’t work, as it’s not designed to be edited.
That’s where I’d start to troubleshoot it, personally. I think Candy should work.
Sorry if any of this is way below your level of expertise; can’t judge how much you know about this stuff, so I’m trying to cover everything.