Détection de présence avec LiveCycle

4 02 2009

Vodpod videos no longer available.

Un client m’a demandé comment LiveCycle Data Services peut détecter côté Java quand un utilisateur se connecte ou se déconnecte de la couche de messaging. Du coup, j’ai réalisé un exemple qui utilise l’API Java de LCDS pour inscrire dans la console Java les événements de création de session et de création de client pour le messaging. Les sources du projet Flex/Java sont disponibles ici. Côté Java, j’invoque par remoting un service qui se met à l’écoute des événements de Session, de FlexClient et de MessageClient. Dès qu’un événement est reçu, le service java inscrit une ligne dans la console de log. Voici la liste des listeners Java:

        MyFlexSessionListener sessionListener = new MyFlexSessionListener();
        FlexSession.addSessionCreatedListener(sessionListener);

        MyFlexClientListener flexClientListener = new MyFlexClientListener();
        FlexClient.addClientCreatedListener(flexClientListener);

        MyMessageClientListener messageClientListener = new MyMessageClientListener();
        MessageClient.addMessageClientCreatedListener(messageClientListener);

Côté code Flex, c’est juste un module classique de chat où j’ai rajouté un bouton pour lancer une fois le service Java par remoting, s’abonner manuellement au chat et se désabonner. La vidéo montre comment réagit la console Tomcat en fonction des actions des utilisateurs Flex. Le code du chat est simplissime:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[

            import mx.messaging.messages.AsyncMessage;
            import mx.messaging.messages.IMessage;

            private function send():void
            {
                var message:IMessage = new AsyncMessage();
                message.body.chatMessage = msg.text;
                producer.send(message); 
                msg.text = "";
            }

            private function messageHandler(message:IMessage):void
            {
                log.text += message.body.chatMessage + "\n";    
            }

        ]]>
    </mx:Script>

    <mx:Producer id="producer" destination="chat"/>
    <mx:Consumer id="consumer" destination="chat" message="messageHandler(event.message)"/>

    <mx:Panel title="Chat" width="100%" height="100%">
        <mx:TextArea id="log" width="100%" height="100%"/>
        <mx:ControlBar>
             <mx:TextInput id="msg" width="50%" enter="send()"/>
             <mx:Button label="Send" click="send()"/> 
             <mx:Button label="launch Listener" click="srv.initialize()"/>
             <mx:Button label="Unsubscribe" click="consumer.unsubscribe()"/>
             <mx:Button label="Subscribe" click="consumer.subscribe()"/>
        </mx:ControlBar>
    </mx:Panel>
        <mx:RemoteObject destination="StartListener" id="srv"/>

</mx:Application>

Cet exemple très simple montre comment interconnecter un système de gestion de présence en Java et une application Flex connectée à LiveCycle Data Services. Toutes les librairies Java sont disponibles dans le SDK de LCDS.


Actions

Information

3 responses

4 02 2009
michael chaize

Mais que font ces smileys dans mon code !!!!!!!!!!

26 10 2009
Rajan

Hi

I looked into the « Detecting presence with LiveCycle « . I have created listeners as shown in your code but i do not know how this will be invoked. I mean to say do i need to add any thing in any of the configuration xml files. Secondly where should i write the listeners creation code, which class they should extends and all other deatils.

Regards
ilikeflex

26 10 2009
michael chaize

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s




%d blogueurs aiment cette page :