搭建flex + blazeds 最简单的messaging例子:简易聊天室

flex + blazeds messaging应用很广泛,比如实时聊天,collaborationapplication。在BlazeDS turnkey (https://www.adobe.com/cfusion/entitlement/index.cfm?e=lc_blazeds)就有一个CollaborationDashboard sample

 

sampleshow how you can use the Message Service to build collaborative applications.To try this sample, open the application in two different browser windows andnotice how selections made in one window are reflected in the other window.

 

下面讲解怎样搭建flex +blazeds最简单的messaging例子:简易聊天室

 

1.     tomcat里创建一个web app (e.g. blazeds),然后把blazeds.war里的东东全部copy到该目录。

2.     修改WEB-INF/flex/messaging-config.xml (蓝色和红色部分是添加的,虽然不知道为什么要添加,因为不加也行,稍后研究)

<?xml version="1.0" encoding="UTF-8"?>

<service id="message-service"

   class="flex.messaging.services.MessageService">

   <adapters>

       <adapter-definition id="actionscript" class="flex.messaging.services.messaging.adapters.ActionScriptAdapter" default="true" />

       <adapter-definition id="jms" class="flex.messaging.services.messaging.adapters.JMSAdapter"/>

   </adapters>

   <default-channels>

               <channel ref="my-streaming-amf"/>

       <channel ref="my-polling-amf"/>

   </default-channels>

   <destination id="chat"/>

</service>

 

3.     WEB-INF/flex/services-config.xml里的<channels>里添加下列代码

<channel-definition id="my-streaming-amf" class="mx.messaging.channels.StreamingAMFChannel">

        <endpoint class="flex.messaging.endpoints.StreamingAMFEndpoint" url="http://{server.name}:{server.port}/{context.root}/messagebroker/streamingamf"/>

</channel-definition>


4. restart tomcat


5.     创建flexproject (link to this blazeds web app)mxml file的代码如下

<?xml version="1.0"?> 

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" 

                               creationComplete="subscribe();" height="432" width="686"> 

        <mx:Script> 

                <![CDATA[ 

                       import mx.messaging.messages.*; 

                       import mx.messaging.events.*; 

                       

                       private function subscribe():void { 

                               consumer.subscribe(); 

                       } 

                       private var begintime:Date; 

                       private var endtime:Date; 

                       

                       private function messageHandler(event:MessageEvent):void{ 

                               ta.text +=event.message.body; 

                               endtime=new Date(); 

                               var elapse:Number=endtime.valueOf()-begintime.valueOf(); 

                               ta.text+=" --耗时:"+elapse+"毫秒" +"\n"; 

                       } 

                       private function sendMessage():void { 

                               var message:AsyncMessage = new AsyncMessage(); 

                               message.body =userName.text +": " +msg.text; 

                               producer.send(message); 

                               msg.text = ""; 

                               begintime=new Date(); 

                       } 

                ]]> 

        </mx:Script> 

       

        <mx:Producer id="producer" destination="chat"/> 

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

       

        <mx:TextArea id="ta" width="640" height="231" x="13.5" y="37"/> 

        <mx:TextInput id="userName" x="100" y="275" width="200" text="Eric Han"/> 

        <mx:TextInput id="msg" width="546" x="98" y="318" /> 

        <mx:Label text="UserName" x="10" y="275" width="80"/> 

        <mx:Label text="message" x="10" y="320" width="80"/> 

       

        <mx:Button label="Send" click="sendMessage();" x="318.5" y="377"/> 

</mx:Application>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值