Flex Builder中创建简单BlazeDS信息程序

这个实例教你怎么用BlazeDS信息服务创建一个简单的聊天程序。

服务器端配置:
1. 在你拷贝过来的BlazeDS的web程序中,打开WEB-INF/flex/messaging-config.xml文件。
如果你用BlazeDS集成Tomcat服务器,BlazeDS的web程序可以在install_dir/tomcat/webapps中找到。messaging-config.xml文件包含了信息服务的设置。如果你打开同一目录下services-config.xml文件,你会看到the messaging-config.xml在这个文件中被引用。services-config.xml对BlazeDS是最好高级配置。通常,你为指定服务,像信息,引用配置文件。在这个文件,你也可以定义广泛的系统设置。
2. 在messaging-config.xml文件中,在</service>元素上面添加下面的元素:
<destination id="chat"/>

3. 服务器端的目标是把Flex客户端的信息发布,客户端描述了被发布的信息。值得注意的是有一个my-polling-amf 的默认通道在messaging-config.xml配置文件里。BlazeDS利用通道发送数据,并且在Flex客户端和服务器端相互交互。实际的通道被定义在services-config.xml,它仅在messaging-config.xml中被引用。这个特殊的通道利用the Action Message Format (AMF),获取到达服务器端的信息。除了正在获取的通道,BlazeDS也提供了通道用来客户端,服务器,流数据之间的联系。
4. 开始或者重新启动你的程序服务。

客户点部署

1. 在Flex Builder 3中,像如下描述创建一个新的BlazeDS工程
http://learn.adobe.com/wiki/display/Flex/Using+Flex+Builder+with+your+J2EE+server
2. 工程名称为chat1.
3. 在FlexBuilder中创建chat1.mxml,在该文件中你将创建一个Flex客户程序,程序可以发布信息到目标程序,并且在目标程序显示信息。
4. 在chat1.mxml文件下面的<mx:Application>元素中添加一个空的<mx:Script>元素。你可以在FlexBuilder输入下面的代码,或者复制下面的代码
<mx:Script>
	<![CDATA[

	]]>
</mx:Script>

5. 在</mx:Script>添加下面的MXML代码。
这个代码创建一个producer and consumer。The producer 发送信息到目的地,the consumer 显示从目的地取回的信息。在这个程序,我们在MXML创建a Producer and Consumer对象,也可以像大多数Flex对象,你可以有选择的在ActionScript中创建他们。
<mx:Consumer id="consumer" destination="chat" message="messageHandler(event.message)"/>
	<mx:Producer id="producer" destination="chat"/>

6. 在<mx:Consumer>中添加下面的MXML代码。
这部分代码创建用户接口,该接口被用来输入信息,发送信息,显示接收的信息。Panel容器组织它包含的对象。ControlBar也可以布局。TextArea用来显示终端数据。TextInput用来输入信息.你用Button去提交信息到终端。
<mx:Panel title="Chat" width="100%" height="100%">
	<mx:TextArea id="log" width="100%" height="100%"/>
	<mx:ControlBar>
		<mx:TextInput id="msg" width="100%" enter="send()"/>
		<mx:Button label="Send B" click="send()"/>
	</mx:ControlBar>
</mx:Panel>

7. 在<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";
}

这部分代码可以做如下的事情:
(1)导入AsyncMessage类和IMessage接口,他们被用在send()方法里。
(2)创建send()方法,当按钮被点击调用该方法。
(3)
This method creates a new AsyncMessage and assigns it to the variable message which is of type IMessage . It sets the value of the message.body.chatMessage property to the value of the msg.text - the TextInput control's text property. It callse the Producer's send() method to send the message, and then empties the msg.text property.
Creates the messageHandler() event handler method. This method handles "message" events when the Consumer object receives a message from the destination. This method displays message.body.chatMessage text in the log.text property - the text property of the TextArea control. Note that the Consumer element's message property is set to the messageHandler() method.
Note: Because the producer.send() method takes an IMessage as an argument in this example we explicitly cast AsyncMessage to the IMessage interface which it implements. If you don't do this and call producer.send() with an AsyncMessage, this conversion will happen automatically.
8. 添加MXML的属性,以便程序开始的时候Consumer




    Add the following MXML attribute the the mx:Application element so that the Consumer subscribes to the destination when the application starts:
creationComplete="consumer.subscribe()"
The mx:Application element should now look like this:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="consumer.subscribe()">
The MXML code is now complete.

Make sure that your BlazeDS server is running.
Compile and run the client application in Flex Builder by selecting Run > Run from the menu bar.
Open the same URL in a second browser window.
Enter messages in one of the two windows, and they should appear in the other window.




你可能感兴趣的:(tomcat,xml,Web,Flex,actionscript)