AIR 에서 LCDS 이용하기

AirWithLcdsExample.mxml======================================================================================
<?xml version=”1.0″ encoding=”utf-8″?>
<!–====================================================
* LCDS Messaging Service In AIR Application
* @author : shallaa
* @blog : http://shallaazm.tistory.com
=====================================================–>
<mx:WindowedApplication
xmlns:mx=”http://www.adobe.com/2006/mxml”
layout=”vertical”
creationComplete=”creationCompleteHandler()”
>
<mx:Style>
Application
{
fontSize: 12;
}
</mx:Style>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.messaging.messages.AsyncMessage;
import mx.messaging.events.MessageFaultEvent;
import mx.messaging.events.MessageEvent;
import mx.messaging.channels.AMFChannel;
import mx.messaging.ChannelSet;
private var _channelSet:ChannelSet;
private var _amfChannel:AMFChannel;
/**
* creationComplete handler
* @private
*/
private function creationCompleteHandler():void
{
_channelSet = new ChannelSet();
_amfChannel = new AMFChannel("my-amf", "http://[도메인]:[포트]/[경로..]/messagebroker/amf”);
_amfChannel.pollingEnabled = true;
_amfChannel.pollingInterval = 1000;
_channelSet.addChannel(_amfChannel);
producer0.channelSet = _channelSet;
consumer0.channelSet = _channelSet;
consumer0.subscribe();
}
/**
* Button click handler
* @private
*/
private function clickHandler(e:MouseEvent):void
{
var button:Button = e.currentTarget as Button;
switch(button)
{
case button0 : sendMessage(); break;
}
}
/**
* Producer send
* @private
*/
private function sendMessage():void
{
var message:AsyncMessage = new AsyncMessage();
message.body.msg = textInput0.text;
producer0.send(message);
textInput0.text = “”;
}
/**
* Consumer MessageEvent handler
* @private
*/
private function messageHandler(e:MessageEvent):void
{
var messge:String = e.message.body.msg;
textArea0.text += messge + “\n”;
}
/**
* Consumer MessageFaultEvent handler
* @private
*/
private function faultHandler(e:MessageFaultEvent):void
{
Alert.show(e.message.toString());
}
]]>
</mx:Script>
<mx:Producer id=”producer0″ destination=”airWithLcds” fault=”faultHandler(event)”/>
<mx:Consumer id=”consumer0″ destination=”airWithLcds” message=”messageHandler(event)” fault=”faultHandler(event)”/>
<mx:TextArea id=”textArea0″ width=”100%” height=”100%” selectable=”false” editable=”false”/>
<mx:HBox width=”100%”>
<mx:TextInput id=”textInput0″ enter=”sendMessage()” width=”100%” imeMode=”KOREAN”/>
<mx:Button id=”button0″ label=”send” click=”clickHandler(event)”/>
</mx:HBox>
</mx:WindowedApplication>
=============================================================================================
services-config.xml==========================================================================
<channels>
<channel-definition id=”my-amf” class=”mx.messaging.channels.AMFChannel”>
<endpoint url=”http://{server.name}:{server.port}/{context.root}/messagebroker/amf” class=”flex.messaging.endpoints.AMFEndpoint”/>
<properties>
<polling-enabled>true</polling-enabled>
</properties>
</channel-definition>
</channels>
===============================================================================================
messaging-config.xml==========================================================================
<destination id=”airWithLcds”>
<channels>
<channel ref=”my-amf”/>
</channels>
</destination>
================================================================================================
저처럼 flex builder에서 Server technology 부분 설정 등등이 “성가시다”라고 생각이 드시는 까탈쟁이 분들은 위 방법으로 Web Application에서 사용하셔도 됩니다.

AirWithLcdsExample.mxml======================================================================================

<?xml version=”1.0″ encoding=”utf-8″?>

<!–====================================================

* LCDS Messaging Service In AIR Application

* @author : shallaa

* @blog : http://shallaazm.tistory.com

=====================================================–>

<mx:WindowedApplication

xmlns:mx=”http://www.adobe.com/2006/mxml”

layout=”vertical”

creationComplete=”creationCompleteHandler()”

>

<mx:Style>

Application

{

fontSize: 12;

}

</mx:Style>

<mx:Script>

<![CDATA[

import mx.controls.Alert;

import mx.messaging.messages.AsyncMessage;

import mx.messaging.events.MessageFaultEvent;

import mx.messaging.events.MessageEvent;

import mx.messaging.channels.AMFChannel;

import mx.messaging.ChannelSet;

private var _channelSet:ChannelSet;

private var _amfChannel:AMFChannel;

/**

* creationComplete handler

* @private

*/

private function creationCompleteHandler():void

{

_channelSet = new ChannelSet();

_amfChannel = new AMFChannel("my-amf", "http://[도메인]:[포트]/[경로..]/messagebroker/amf”);

_amfChannel.pollingEnabled = true;

_amfChannel.pollingInterval = 1000;

_channelSet.addChannel(_amfChannel);

producer0.channelSet = _channelSet;

consumer0.channelSet = _channelSet;

consumer0.subscribe();

}

/**

* Button click handler

* @private

*/

private function clickHandler(e:MouseEvent):void

{

var button:Button = e.currentTarget as Button;

switch(button)

{

case button0 : sendMessage(); break;

}

}

/**

* Producer send

* @private

*/

private function sendMessage():void

{

var message:AsyncMessage = new AsyncMessage();

message.body.msg = textInput0.text;

producer0.send(message);

textInput0.text = “”;

}

/**

* Consumer MessageEvent handler

* @private

*/

private function messageHandler(e:MessageEvent):void

{

var messge:String = e.message.body.msg;

textArea0.text += messge + “\n”;

}

/**

* Consumer MessageFaultEvent handler

* @private

*/

private function faultHandler(e:MessageFaultEvent):void

{

Alert.show(e.message.toString());

}

]]>

</mx:Script>

<mx:Producer id=”producer0″ destination=”airWithLcds” fault=”faultHandler(event)”/>

<mx:Consumer id=”consumer0″ destination=”airWithLcds” message=”messageHandler(event)” fault=”faultHandler(event)”/>

<mx:TextArea id=”textArea0″ width=”100%” height=”100%” selectable=”false” editable=”false”/>

<mx:HBox width=”100%”>

<mx:TextInput id=”textInput0″ enter=”sendMessage()” width=”100%” imeMode=”KOREAN”/>

<mx:Button id=”button0″ label=”send” click=”clickHandler(event)”/>

</mx:HBox>

</mx:WindowedApplication>

=============================================================================================

services-config.xml==========================================================================

<channels>

<channel-definition id=”my-amf” class=”mx.messaging.channels.AMFChannel”>

<endpoint url=”http://{server.name}:{server.port}/{context.root}/messagebroker/amf” class=”flex.messaging.endpoints.AMFEndpoint”/>

<properties>

<polling-enabled>true</polling-enabled>

</properties>

</channel-definition>

</channels>

===============================================================================================

messaging-config.xml==========================================================================

<destination id=”airWithLcds”>

<channels>

<channel ref=”my-amf”/>

</channels>

</destination>

================================================================================================

저처럼 flex builder에서 Server technology 부분 설정 등등이 “성가시다”라고 생각이 드시는 까탈쟁이 분들은 위 방법으로 Web Application에서 사용하셔도 됩니다.