`
wanguangru
  • 浏览: 19511 次
  • 性别: Icon_minigender_2
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java Server Push To Flex (ServerPush)

 
阅读更多

  在网上找了许多的Flex与java 通信做ServerPush 的例子,发现有许多不正确,今天就做了一小程序。希望对大家有用
  1. Product 类  package com.east.flex.serverpush.entity; /** * 产品类 * @author East(张栋芳) * * 2010-6-12 */ public class Product { private String month; private int profit; private int expenses; private int amount; public String getMonth() { return month; } public void setMonth(String month) { this.month = month; } public int getProfit() { return profit; } public void setProfit(int profit) { this.profit = profit; } public int getExpenses() { return expenses; } public void setExpenses(int expenses) { this.expenses = expenses; } public int getAmount() { return amount; } public void setAmount(int amount) { this.amount = amount; } }  2. ServerPushThread  package com.east.flex.serverpush.chart; import java.util.ArrayList; import java.util.List; import java.util.Random; import com.east.flex.serverpush.entity.Product; import flex.messaging.MessageBroker; import flex.messaging.messages.AsyncMessage; import flex.messaging.util.UUIDUtils; /** * 构造数据后台线程 * * @author East(张栋芳) * * 2010-6-13 */ public class ServerPushThread extends Thread { public boolean running = true; @Override public void run() { MessageBroker msgBroker = MessageBroker.getMessageBroker(null); String clientId = UUIDUtils.createUUID(); while (running) { /* ============================== */ // TODO do someing /* ============================== */ List productList = getProductList(); AsyncMessage msg = new AsyncMessage(); msg.setDestination("serverpush"); msg.setClientId(clientId); msg.setMessageId(UUIDUtils.createUUID()); msg.setTimestamp(System.currentTimeMillis()); /* 设置消息信息,发布到客户端去 */ msg.setBody(productList); msgBroker.routeMessageToService(msg, null); try { Thread.sleep(10000); } catch (InterruptedException se) { } } } /** * 模拟数据信息 * * @return */ public List getProductList() { List productList = new ArrayList(); for (int i = 1; i      -->            5. remoting-config.xml           com.east.flex.serverpush.CreateProduct      com.east.flex.serverpush.chart.ServerPushServer     6. Product.as package com.east.flex.entity { import mx.rpc.remoting.RemoteObject; [RemoteClass(alias="com.east.flex.serverpush.entit y.Product")] public class Product { public var month:String; public var profit:int; public var expenses:int; public var amount:int; public function Product() { } } } 7.ServerPushChart.mxml    import com.east.flex.entity.Product  Flex Server Push 功能*/ import mx.messaging.messages.IMessage; import mx.messaging.events.MessageEvent; import mx.utils.ArrayUtil; import mx.rpc.events.ResultEvent; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.messaging.ChannelSet; import mx.messaging.Consumer; [Bindable] private var p:Product; private var array:ArrayUtil; [Bindable] private var expensesAC:ArrayCollection = null; public var consumer2:Consumer = null; public function messageHandler(event:MessageEvent):void { linechart.dataProvider = event.message.body; trace("server push data to client.............."); } public function remoteServerCallback(event:ResultEvent):void { trace("Server is start...."); //Alert.show("Server is start....."+event.message); } public function startServer(event:MouseEvent):void { server.start(); } public function stopServer(event:MouseEvent):void { server.stop(); } /* public function submsg():void { Alert.show("click start"); consumer= new Consumer(); consumer.destination = "serverpush"; consumer.subtopic = "tick"; consumer.channelSet = new ChannelSet(["my-streaming-amf"]); consumer.addEventListener(MessageEvent.MESSAGE, messageHandler); consumer.subscribe(); Alert.show("click end"); } */ ]]-->   RemoteObject id="server" destination="serverpushserver" result="remoteServerCallback(event)"/>                           
  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics