最近公司想把flex与java后的通信成用BlazeDS,试了几天总算跑通了。
对BlazeDS不了解的可以先去这里了解下
http://livedocs.adobe.com/blazeds/1/blazeds_devguide/
下面是步骤:
1.下载BlazeDS.war解压到%TOMCAT_HOME%/webapps目录下文件名为blazeds内包涵了WEB-INF和META-INF文件夹。
2.写一个flex的客户端 dsMessage.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
creationComplete="applicationInit()">
<mx:Script>
<![CDATA[
import mx.messaging.ChannelSet;
import mx.messaging.channels.AMFChannel;
import mx.controls.Alert;
import mx.messaging.events.MessageEvent;
import mx.messaging.messages.AsyncMessage;
import mx.messaging.events.MessageFaultEvent;
import mx.messaging.events.MessageAckEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
private function applicationInit():void{
var url:String ="http://192.168.1.102/blazeds/"; //随便的以个blazeds应用 如果192.168.1.102改成 localhost后其它的电脑就访问不了。
// var myStreamingAMF:StreamingAMFChannel = new StreamingAMFChannel(url+"my-streaming-amf", url+"messagebroker/streamingamf");
var myPollingAMF:AMFChannel = new AMFChannel(url+"my-polling-amf", url+"messagebroker/amfpolling");
myPollingAMF.pollingEnabled = true;//轮询
myPollingAMF.pollingInterval = 1000;//隔多长时间询问一次 1miao
var channelSet:ChannelSet = new ChannelSet();
// channelSet.addChannel(myStreamingAMF);
channelSet.addChannel(myPollingAMF);
messageProducer.channelSet = channelSet;
messageConsumer.channelSet = channelSet;
messageConsumer.subscribe();
}
private function addMessageToArea(message:String):void
{
chatMessagesArea.text = chatMessagesArea.text + "\n" + message;
}
private function handleResponse(event:MessageEvent):void
{
var message:String = null;
message = event.message.headers["sender"] + ": " + event.message.body;
addMessageToArea(message);
}
private function sendMessage():void
{
var message:AsyncMessage = new AsyncMessage();
message.headers = new Array();
message.headers["sender"] = "sunny";
message.body = chatMessageTxt.text;
messageProducer.send(message);
chatMessageTxt.text = "";
}
private function handleFaults(event:MessageFaultEvent):void
{
Alert.show(event.faultString);
}
private function handleAcknowledgements(event:MessageAckEvent):void
{
trace("done");
}
]]>
</mx:Script>
<mx:Producer id="messageProducer"
destination="mychat"
fault="handleFaults(event);"
acknowledge="handleAcknowledgements(event)"
/>
<mx:Consumer id="messageConsumer"
destination="mychat"
fault="handleFaults(event)"
message="handleResponse(event)"
/>
<mx:VBox width="100%" height="100%">
<mx:TextArea id="chatMessagesArea" editable="false" width="100%" height="100%"
fontFamily="Georgia" fontSize="19" color="#2194AD"/>
<mx:HBox width="100%" height="27">
<mx:TextInput id="chatMessageTxt" width="100%" height="100%"
fontFamily="Georgia" fontSize="15" enter="sendMessage()"/>
<mx:Button id="chatMessageBtn" label="Send" width="64"
height="100%" click="sendMessage();"/>
</mx:HBox>
</mx:VBox>
</mx:Application>
3.写一个java类MessageSender
package com.kinorsoft;
import java.util.Date;
import flex.messaging.MessageBroker;
import flex.messaging.messages.AsyncMessage;
public class MessageSender {
public void sendMessageToClients(String messageBody)
{
AsyncMessage msg = new AsyncMessage();
msg.setClientId("Java-Based-Producer-For-Messaging");
msg.setTimestamp(new Date().getTime());
//you can create a unique id
msg.setMessageId("Java-Based-Producer-For-Messaging-ID");
//destination to which the message is to be sent
msg.setDestination("mychat");
//set message body
msg.setBody(messageBody != null?messageBody:"");
//set message header
msg.setHeader("sender", "From the server");
//send message to destination
MessageBroker.getMessageBroker(null).routeMessageToService(msg, null);
}
}
4.MessageSender.jsp调用上面的MessageSender.java
<%@page import="com.kinorsoft.MessageSender" %>
<%
try
{
com.kinorsoft.MessageSender msg = new com.kinorsoft.MessageSender();
msg.sendMessageToClients("This is from the jsp page");
out.println("sent message");
}
catch(Exception e)
{
e.printStackTrace();
}
%>
5.修改一下 WEB-INF/flex/messaging-config.xml
在<service>下加上
<destination id="mychat"></destination>
分享到:
- 2009-12-15 16:26
- 浏览 1306
- 评论(1)
- 论坛回复 / 浏览 (1 / 4858)
- 查看更多
相关推荐
JAVA通过BlazeDS与FLEX通信 BlazeDS.zip java项目,使用MYECLIPSE导入 FlexJavaServer.fxp FLEX项目,使用FLASHBUILDER4.5导入
Flex Blazeds入门教程 写的很不错的教程
Flex技术本身和Java就有很强的关联性,它提供了一个基于Eclipse的IDE和BlazeDS.BlazeDS是个基于服务端的Java远程调用和Web消息的一个开源的技术。有许多应用都是以Java为后端处理的。Flex用于前端。由于Java和Flex...
flex blazeds的入门例子,里面就一个String型的方法,在flex上输入字符串,返回一个java的字符串。
Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring
Java程序员学习Flex和BlazeDS.doc
关于flex java整合的案例,使用BlazeDS或LCDS整合flex和java技术,带整合步骤图片
Flex + blazeds + Java推送Demo 本例实现由Flex一端客户端发送消息, 然后由Java端在发布到所有订阅的其它Flex端. 里面有说明与源码, 还有一个直接放到Tomcat里面的直接发布的项目 小编使用工具 eclipse3.5 flex sdk...
flex blazeDS开发使用手册,对于集成blaze开发很有用处。
Flex使用blazeds和java交互数据。 blazeds包和使用的详细步骤。 Flex blazeds 使用步骤、blazeds_bin_3-0-0-544.zip、blazeds.war、
flex blazeds实现服务器向客户端推送数据 环境Eclipse Java EE IDE 服务apache-tomcat-7.0.23-windows-x86 blazeds采用的是blazeds4.0.0.14931 (附件中包含 apache-tomcat-7.0.23 + 源码 + 说明文档)
flex+java+blazeds配置最终版
flex BlazeDS java整合过程中犯的错误
flex blazeds turnkey包flex blazeds turnkey包
Flex+JAVA+BlazeDS开发环境配置(Java工程和Flex工程独立).doc
使用BlazeDS实现flex与java 整合 使用BlazeDS实现flex与java 整合 flex+java
Flex,blazeds,企业门户网站Flex,blazeds,企业门户网站Flex,blazeds,企业门户网站Flex,blazeds,企业门户网站Flex,blazeds,企业门户网站
BlazeDS配置指南 tomcat安装 xml配置 flex与blazeDs
Flex blazeds封装实体 读后台数据
flex 工具 blazeds