Hi @Mark Walters,
I was able to convert the Flex project to a Flash one but not completely tho
here it is located.(Original) http://paazio.wippiespace.com/xiff-gui-v2.1/
I need a small help in that. I am able to connect to an XMPP server, recieve the Chat messages that some one has sent me but I am not able to send one back
I need a simple code wich can accomplish this task.
If you see the last but one line under code secton you will come to know what I am looking for.
Here is the complete code:
//****************************************************************************** ******
import flash.events.Event;
import com.yourpalmark.chat.ChatManager;
import com.yourpalmark.chat.data.LoginCredentials;
import com.pixelbreaker.ui.osx.MacMouseWheel;
import mx.collections.ArrayCollection;
import mx.events.CloseEvent;
import mx.events.FlexEvent;
import mx.events.ListEvent;
import mx.managers.PopUpManager;
import mx.events.ResizeEvent;
import org.igniterealtime.xiff.conference.Room;
import org.igniterealtime.xiff.core.EscapedJID;
import org.igniterealtime.xiff.core.UnescapedJID;
import org.igniterealtime.xiff.data.Message;
import org.igniterealtime.xiff.data.Presence;
import org.igniterealtime.xiff.data.im.RosterGroup;
import org.igniterealtime.xiff.data.im.RosterItemVO;
import org.igniterealtime.xiff.events.DisconnectionEvent;
import org.igniterealtime.xiff.events.IncomingDataEvent;
import org.igniterealtime.xiff.events.InviteEvent;
import org.igniterealtime.xiff.events.LoginEvent;
import org.igniterealtime.xiff.events.MessageEvent;
import org.igniterealtime.xiff.events.OutgoingDataEvent;
import org.igniterealtime.xiff.events.PresenceEvent;
import org.igniterealtime.xiff.events.RegistrationSuccessEvent;
import org.igniterealtime.xiff.events.RosterEvent;
import org.igniterealtime.xiff.events.XIFFErrorEvent;
import mx.controls.ComboBox;
import org.igniterealtime.xiff.core.XMPPConnection;
import flash.net.XMLSocket;
var chatManager:ChatManager;
var messageDict:Dictionary;
//var roomPopup:RoomPopup;
var errorDataProvider:ArrayCollection = new ArrayCollection();
var logDataProvider:ArrayCollection = new ArrayCollection();
var presenceDataProvider:Array = [
{ label:“Online”, data:Presence.SHOW_CHAT },
{ label:“Free To Chat”, data:Presence.SHOW_CHAT },
{ label:“Away”, data:Presence.SHOW_AWAY },
{ label:“Do Not Disturb”, data:Presence.SHOW_DND },
{ label:“Extended Away”, data:Presence.SHOW_XA }
];
var groupDataProvider:Array = [
{ label:“Buddies”, data:“Buddies” },
{ label:“Work”, data:“Work” },
{ label:“Family”, data:“Family” }
];
var instructionText:String = “Enter your username and password and press connect to log in.\n”
-
“Username should be a full JID (username@domain).\n”
-
“Login server and port are used if you fill them in. For example Google Talk uses talk.google.com.\n”
-
“If you are not registered, enter a username and password and press register.\n”
-
“Check the error log to determine if there was a conflict (ie. someone already has your ID).\n”
-
“Once you have successfully registered you may log in.”;
function clearLog():void
{
logDataProvider.removeAll();
}
setupChatManager();
function setupChatManager():void
{
chatManager = new ChatManager();
chatManager.addEventListener( DisconnectionEvent.DISCONNECT, onDisconnect );
chatManager.addEventListener( LoginEvent.LOGIN, onLogin );
chatManager.addEventListener( XIFFErrorEvent.XIFF_ERROR, onXIFFError );
chatManager.addEventListener( OutgoingDataEvent.OUTGOING_DATA, onOutgoingData );
chatManager.addEventListener( IncomingDataEvent.INCOMING_DATA, onIncomingData );
chatManager.addEventListener( RegistrationSuccessEvent.REGISTRATION_SUCCESS, onRegistrationSuccess );
chatManager.addEventListener( PresenceEvent.PRESENCE, onPresence );
chatManager.addEventListener( MessageEvent.MESSAGE, onMessage );
chatManager.addEventListener( InviteEvent.INVITED, onInvited );
chatManager.addEventListener( RosterEvent.ROSTER_LOADED, onRosterLoaded );
chatManager.addEventListener( RosterEvent.SUBSCRIPTION_DENIAL, onSubscriptionDenial );
chatManager.addEventListener( RosterEvent.SUBSCRIPTION_REQUEST, onSubscriptionRequest );
chatManager.addEventListener( RosterEvent.SUBSCRIPTION_REVOCATION, onSubscriptionRevocation );
chatManager.addEventListener( RosterEvent.USER_AVAILABLE, onUserAvailable );
chatManager.addEventListener( RosterEvent.USER_UNAVAILABLE, onUserUnavailable );
}
function setupDataProviders():void
{
//errorLogGrid.dataProvider = errorDataProvider;
//logList.dataProvider = logDataProvider;
//updateGroupBuddyComboBox.dataProvider = chatManager.roster;
//removeBuddyComboBox.dataProvider = chatManager.roster;
//groupComboBox.dataProvider = groupDataProvider;
}
connectButton.addEventListener(MouseEvent.CLICK,LoginNow);
function LoginNow(e){
connect();
}
function connect():void
{
var credentials:LoginCredentials = new LoginCredentials();
credentials.username = usernameInput.text;
credentials.password = passwordInput.text;
msgbox.text+=String(“vinod”);
chatManager.connect(credentials);
}
function addPersonalPopupWindow( userJID:EscapedJID, userPresence:String, userStatus:String, message:Message=null ):void
{
//var popup:PersonalMessagePopup = new PersonalMessagePopup();
//popup.addEventListener( MessageEvent.MESSAGE, onPopupMessage );
//popup.addEventListener( CloseEvent.CLOSE, onPopupClose );
//popup.userPresence = userPresence;
//popup.userStatus = userStatus;
//popup.fromJID = chatManager.currentUserJID;
//popup.toJID = userJID;
//if( message )
//{
// popup.updateMessage( message );
//}
//PopUpManager.addPopUp( popup, this, false );
//PopUpManager.centerPopUp( popup );
//messageDict[ userJID.bareJID ] = popup;
}
function createMUC():void
{
//roomPopup = new RoomPopup();
//roomPopup.addEventListener( XIFFErrorEvent.XIFF_ERROR, onXIFFError );
//roomPopup.chatManager = chatManager;
//PopUpManager.addPopUp( roomPopup, this );
//PopUpManager.centerPopUp( roomPopup );
}
function updateLogScrollPosition():void
{
logList.verticalScrollPosition = logList.maxVerticalScrollPosition;
}
function onInit( event:FlexEvent ):void
{
setupChatManager();
messageDict = new Dictionary();
instructions.text = instructionText;
setupDataProviders();
}
function onAddedToStage( event:Event ):void
{
MacMouseWheel.setup( stage );
}
function onResize( event:ResizeEvent ):void
{
//if( roomPopup ) roomPopup.invalidateSize();
}
function onDisconnect( event:DisconnectionEvent ):void
{
createMUCButton.enabled = false;
groupComboBox.enabled = false;
//rosterGrid.dataProvider = null;
updateGroupBuddyComboBox.enabled = false;
removeBuddyComboBox.enabled = false;
presenceStateComboBox.enabled = false;
disconnectButton.enabled = false;
connectButton.enabled = true;
registerButton.enabled = true;
}
function onLogin( event:LoginEvent ):void
{
msgbox.text+=“LoginEvent:”+String(chatManager.currentUserJID);
//createMUCButton.enabled = true;
//groupComboBox.enabled = true;
//updateGroupBuddyComboBox.enabled = true;
//removeBuddyComboBox.enabled = true;
//presenceStateComboBox.enabled = true;
//presenceStateComboBox.dataProvider = presenceDataProvider;
//disconnectButton.enabled = true;
//connectButton.enabled = false;
//registerButton.enabled = false;
}
function onXIFFError( event:XIFFErrorEvent ):void
{
msgbox.text+=“Error:”+String(event.errorMessage);
//var error:Object = { errorCode:event.errorCode, errorCondition:event.errorCondition, errorMessage:event.errorMessage, errorType:event.errorType };
//errorDataProvider.addItem( error );
//logDataProvider.addItem( "XIFFErrorEvent " + “onXIFFError: " + “type:” + event.errorType + " message:” + event.errorMessage );
//callLater( updateLogScrollPosition );
}
function onOutgoingData( event:OutgoingDataEvent ):void
{
logDataProvider.addItem( ">>outgoing: " + event.data.toString() );
//callLater( updateLogScrollPosition );
}
function onIncomingData( event:IncomingDataEvent ):void
{
logDataProvider.addItem( ">>incoming: " + event.data.toString() );
//callLater( updateLogScrollPosition );
}
function onRegistrationSuccess( event:RegistrationSuccessEvent ):void
{
connect();
//var generalPopup:GeneralPopup = new GeneralPopup();
//generalPopup.message = “Registration was successful. You will now be logged in. You may want to add some contacts at this point.”;
//PopUpManager.addPopUp( generalPopup, this );
//PopUpManager.centerPopUp( generalPopup );
}
function onPresence( event:PresenceEvent ):void
{
var presence:Presence = event.data[ 0 ] as Presence;
var presenceType:String;
switch( presence.type )
{
case Presence.SHOW_CHAT :
case Presence.SHOW_AWAY :
case Presence.SHOW_DND :
case Presence.SHOW_XA :
presenceType = “Presence.AVAILABLE_TYPE”;
break;
case Presence.UNAVAILABLE_TYPE :
presenceType = “Presence.UNAVAILABLE_TYPE”;
break;
case Presence.UNSUBSCRIBE_TYPE :
presenceType = “Presence.UNSUBSCRIBE_TYPE”;
break;
case Presence.PROBE_TYPE :
presenceType = “Presence.PROBE_TYPE”;
break;
default :
break;
}
logDataProvider.addItem( "PresenceEvent " + presenceType + ": " + presence.from );
//callLater( updateLogScrollPosition );
}
function onMessage( event:MessageEvent ):void
{
var message:Message = event.data as Message;
msgbox.text+=“Message:”+String(event.data.body)+" $ "+String(event.data.from.bareJID)+ " # "+String(event.type);
/*
if( message.type == Message.CHAT_TYPE )
{
if( messageDict[ message.from.bareJID ] )
{
//var popup:PersonalMessagePopup = messageDict[ message.from.bareJID ] as PersonalMessagePopup;
//popup.updateMessage( message );
}
else
{
try
{
var ri:RosterItemVO = RosterItemVO.get( message.from.unescaped, false );
//addPersonalPopupWindow( message.from, ri.show, ri.status, message );
}
catch( event:Error )
{
logDataProvider.addItem( “Message from a user not in roster.” );
}
}
}
*/
//callLater( updateLogScrollPosition );
}
function onInvited( event:InviteEvent ):void
{
//var acceptDeclinePopup:AcceptDeclinePopup = new AcceptDeclinePopup();
//acceptDeclinePopup.additionalData = { room:event.room, reason:event.reason, from:event.from };
//acceptDeclinePopup.message = event.from + " requests you to join a room. Reason: " + event.reason;
//acceptDeclinePopup.addEventListener( AcceptDeclinePopup.ACCEPT, onInviteAccept );
//acceptDeclinePopup.addEventListener( AcceptDeclinePopup.DECLINE, onInviteDecline );
//PopUpManager.addPopUp( acceptDeclinePopup, this );
//PopUpManager.centerPopUp( acceptDeclinePopup );
//logDataProvider.addItem( ">>handle Invitation to room: " + ( Room( event.room ).roomJID as UnescapedJID ).bareJID );
//callLater( updateLogScrollPosition );
}
function onInviteAccept( event:Event ):void
{
//var acceptDeclinePopup:AcceptDeclinePopup = event.target as AcceptDeclinePopup;
//var room:Room = acceptDeclinePopup.additionalData.room as Room;
//PopUpManager.removePopUp( acceptDeclinePopup );
//roomPopup = new RoomPopup();
//roomPopup.moderator = false;
//roomPopup.chatManager = chatManager;
//roomPopup.room = room;
//PopUpManager.addPopUp( roomPopup, this );
//PopUpManager.centerPopUp( roomPopup );
}
function onInviteDecline( event:Event ):void
{
//var acceptDeclinePopup:AcceptDeclinePopup = event.target as AcceptDeclinePopup;
//var room:Room = acceptDeclinePopup.additionalData.room as Room;
//room.decline( room.userJID, “I do not want to join” );
//PopUpManager.removePopUp( acceptDeclinePopup );
}
function onRosterLoaded( event:RosterEvent ):void
{
//rosterGrid.dataProvider = chatManager.roster;
}
function onSubscriptionDenial( event:RosterEvent ):void
{
//var generalPopup:GeneralPopup = new GeneralPopup();
//generalPopup.message = event.jid + " denied you request to subscribe to their presence."
//PopUpManager.addPopUp( generalPopup, this );
//PopUpManager.centerPopUp( generalPopup );
}
function onSubscriptionRequest( event:RosterEvent ):void
{
if( !chatManager.roster.contains( RosterItemVO.get( event.jid, false ) ) )
{
//var acceptDeclinePopup:AcceptDeclinePopup = new AcceptDeclinePopup();
//acceptDeclinePopup.addEventListener( AcceptDeclinePopup.ACCEPT, onSubscriptionAccept );
//acceptDeclinePopup.addEventListener( AcceptDeclinePopup.DECLINE, onSubscriptionDecline );
//acceptDeclinePopup.jid = event.jid.escaped;
//acceptDeclinePopup.message = “The user " + event.jid + " wishes to add you to their roster and see your presence online.”;
//PopUpManager.addPopUp( acceptDeclinePopup, this, false );
//PopUpManager.centerPopUp( acceptDeclinePopup );
}
}
function onSubscriptionAccept( event:Event ):void
{
//var acceptDeclinePopup:AcceptDeclinePopup = event.target as AcceptDeclinePopup;
//chatManager.roster.grantSubscription( acceptDeclinePopup.jid.unescaped, true );
//PopUpManager.removePopUp( acceptDeclinePopup );
}
function onSubscriptionDecline( event:Event ):void
{
//var acceptDeclinePopup:AcceptDeclinePopup = event.target as AcceptDeclinePopup;
//chatManager.roster.denySubscription( acceptDeclinePopup.jid.unescaped );
//PopUpManager.removePopUp( acceptDeclinePopup );
}
function onSubscriptionRevocation( event:RosterEvent ):void
{
logDataProvider.addItem( "RosterEvent.SUBSCRIPTION_REVOCATION: " + event.jid.toString() );
//callLater( updateLogScrollPosition );
}
function onUserAvailable( event:RosterEvent ):void
{
logDataProvider.addItem( "RosterEvent.USER_AVAILABLE: " + event.jid );
//callLater( updateLogScrollPosition );
}
function onUserUnavailable( event:RosterEvent ):void
{
logDataProvider.addItem( "RosterEvent.USER_UNAVAILABLE: " + event.jid );
//callLater( updateLogScrollPosition );
}
function onPopupMessage( event:MessageEvent ):void
{
msgbox.text+=“popUp:”+String(event.data);
var message:Message = event.data as Message;
chatManager.connection.send( message );
}
function onPopupClose( event:CloseEvent ):void
{
//var popup:PersonalMessagePopup = event.target as PersonalMessagePopup;
//delete messageDict[ popup.toJID.bareJID ];
//PopUpManager.removePopUp( popup );
}
function onServerInputChange():void
{
ChatManager.serverName = serverInput.text;
}
function onServerPortInputChange():void
{
ChatManager.serverPort = parseInt(serverPortInput.text);
}
function onUpdateGroupBuddyChange( event:ListEvent ):void
{
var rosterItem:RosterItemVO = RosterItemVO( updateGroupBuddyComboBox.selectedItem );
var groups:Array = chatManager.roster.getContainingGroups( rosterItem );
var group:RosterGroup = RosterGroup( groups[ 0 ] );
for( var i:int=0; i<groupDataProvider.length; i++ )
{
var groupObject:Object = groupDataProvider[ i ];
var groupLabel:String = groupObject.label;
if( groupLabel == group.label )
{
groupComboBox.selectedIndex = i;
break;
}
}
}
function onPresenceStateChange( event:ListEvent ):void
{
chatManager.updatePresence( presenceStateComboBox.value.toString(), presenceStateComboBox.text );
}
function onConnectClick( event:MouseEvent ):void
{
if (serverInput.text == “”)
{
serverInput.text = usernameInput.text.split("@").pop();
ChatManager.serverName = serverInput.text;
}
connect();
}
function onCreateMUCClick( event:MouseEvent ):void
{
createMUC();
}
function onClearLogClick( event:MouseEvent ):void
{
clearLog();
}
function onRegisterClick( event:MouseEvent ):void
{
var credentials:LoginCredentials = new LoginCredentials();
credentials.username = usernameInput.text;
credentials.password = passwordInput.text;
chatManager.register( credentials );
}
function onDisconnectClick( event:MouseEvent ):void
{
chatManager.disconnect();
}
function onRosterItemClick( event:ListEvent ):void
{
var rosterItem:RosterItemVO = chatManager.roster.getItemAt( event.rowIndex ) as RosterItemVO;
if( messageDict[ rosterItem.jid.bareJID ] )
{
//var win:PersonalMessagePopup = messageDict[ rosterItem.jid.bareJID ] as PersonalMessagePopup;
//PopUpManager.bringToFront( win );
}
else
{
addPersonalPopupWindow( rosterItem.jid.escaped, rosterItem.show, rosterItem.status );
}
}
function onUpdateGroupClick( event:MouseEvent ):void
{
if( updateGroupBuddyComboBox.selectedIndex != -1 )
{
var rosterItem:RosterItemVO = RosterItemVO( updateGroupBuddyComboBox.selectedItem );
chatManager.updateGroup( rosterItem, groupComboBox.selectedLabel );
updateGroupBuddyComboBox.selectedIndex = 0;
}
else
{
//var generalPopup:GeneralPopup = new GeneralPopup();
//generalPopup.message = “You must select a buddy to update their group.”;
//PopUpManager.addPopUp( generalPopup, this );
//PopUpManager.centerPopUp( generalPopup );
}
}
function onAddBuddyClick( event:MouseEvent ):void
{
var jid:UnescapedJID = new UnescapedJID( buddyJIDInput.text );
var message:String;
if( ChatManager.isValidJID( jid.escaped ) )
{
message = “A request has been sent to the user. You will see them online if they accept your request.”;
chatManager.addBuddy( jid.escaped );
}
else
{
message = “The JID of the user you tried to add did not validate. Try just adding nick.”;
}
//var generalPopup:GeneralPopup = new GeneralPopup();
//generalPopup.message = message;
//PopUpManager.addPopUp( generalPopup, this );
//PopUpManager.centerPopUp( generalPopup );
}
function onRemoveBuddyClick( event:MouseEvent ):void
{
if( removeBuddyComboBox.selectedIndex != -1 )
{
var rosterItem:RosterItemVO = RosterItemVO( removeBuddyComboBox.selectedItem );
chatManager.removeBuddy( rosterItem );
removeBuddyComboBox.selectedIndex = 0;
}
else
{
//var generalPopup:GeneralPopup = new GeneralPopup();
//generalPopup.message = “You must select a buddy to remove.”;
//PopUpManager.addPopUp( generalPopup, this );
//PopUpManager.centerPopUp( generalPopup );
}
}
//////////////////////////////////
sendButton.addEventListener(MouseEvent.CLICK,sendMessageNow)
function sendMessageNow(e){
msgbox.text+=“Send click”;
sendMessage(“v4@server”,“v5@server”,“Body message”);
}
// I will be calling this function from different popup windows to send the chat message//
function sendMessage(fromId,toId,str,){
"<<<<<<Here I want to put the code to send the message to the chat server>>>>>>";
}
/*****************************************
Thanks in advance