Here is the code that I am using for the example you are trying. You can see here that the XMPPConnection class never gets instatiated again when logging on with another user.
import mx.controls.Button;
import mx.controls.TextArea;
import mx.controls.TextInput;
import mx.utils.Delegate;
import org.jivesoftware.xiff.core.XMPPConnection;
class TestJive {
//mx components
private var connectButton:Button;
private var outputTextArea:TextArea;
private var serverField:TextField;
private var userField:TextField;
private var passwordField:TextField;
//XMPPConnection
private var socket:XMPPConnection;
/**
*/
public function main():Void {
initComponents();
initSocketServer();
}
private function initComponents() {
connectButton = _root.connectButton;
outputTextArea = _root.xmppOutput;
serverField = root.serverinput;
userField = root.userinput;
passwordField = root.passwordinput;
connectButton.addEventListener(“click”, Delegate.create(this, connectButtonClicked));
}
private function connectButtonClicked():Void {
var server:String = serverField.text;
var user:String = userField.text;
var password:String = passwordField.text;
output("connecting to the server: " + server + “.”);
output("with user: " + user);
output("password: " + password);
socket.server = server;
socket.username = user;
socket.password = password;
socket.connect(“flash”);
}
private function initSocketServer():Void {
socket = new XMPPConnection();
socket.addEventListener(“outgoingData”, Delegate.create(this, handleOutgoingData));
socket.addEventListener(“incomingData”, Delegate.create(this, handleIncomingData));
socket.addEventListener(“login”, Delegate.create(this, loginSuccess));
}
private function handleOutgoingData(eventObj:Object):Void {
output("sent: " + eventObj.data);
}
private function handleIncomingData(eventObj:Object):Void {
output("recv: " + eventObj.data);
}
private function loginSuccess():Void {
output(“Logged In!”);
}
private function output(text:Object):Void {
outputTextArea.text += text + “\n”;
outputTextArea.vPosition = outputTextArea.maxVPosition;
trace(text);
}
}