Flex通过Blazeds利用Remoteservice与后台java消息推送
Flex通过Blazeds利用Remoteservice与后台java消息推送
- <channel-definition id="my-streaming-amf" class="mx.messaging.channels.StreamingAMFChannel">
- <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/streamingamf" class="flex.messaging.endpoints.StreamingAMFEndpoint"/>
- <properties>
- <idle-timeout-minutes>0</idle-timeout-minutes>
- <max-streaming-clients>10</max-streaming-clients>
- <server-to-client-heartbeat-millis>5000
- </server-to-client-heartbeat-millis>
- <user-agent-settings>
- <user-agent match-on="MSIE" kickstart-bytes="2048" max-streaming-connections-per-session="1"/>
- <user-agent match-on="Firefox" kickstart-bytes="2048" max-streaming-connections-per-session="1"/>
- </user-agent-settings>
- </properties>
- </channel-definition>
- <destination id="message-data-feed">
- <properties>
- <server>
- <allow-subtopics>true</allow-subtopics>
- <subtopic-separator>.</subtopic-separator>
- </server>
- </properties>
- <channels>
- <channel ref="my-polling-amf" />
- <channel ref="my-streaming-amf" />
- </channels>
- </destination>
- <?xml version="1.0" encoding="utf-8"?>
- <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:s="library://ns.adobe.com/flex/spark"
- xmlns:mx="library://ns.adobe.com/flex/mx"
- minWidth="955" minHeight="600">
- <fx:Script>
- <![CDATA[
- import mx.messaging.Channel;
- import mx.messaging.ChannelSet;
- import mx.messaging.Consumer;
- import mx.messaging.events.MessageEvent;
- import mx.rpc.events.ResultEvent;
- private var myConsumer:Consumer = new Consumer();
- //直接利用Remote来进行远程的消息调用
- //开始订阅消息
- protected function rbt_clickHandler(event:MouseEvent):void
- {
- // TODO Auto-generated method stub
- //利用远程调用来触发开始工作
- subMessage.startSendMessage("start");
- //准备开始订阅消息
- myConsumer.destination = " message -data-feed";
- //这里也要与后台的主题名称必须相同
- myConsumer.subtopic = "tick";
- myConsumer.channelSet = new ChannelSet(["my-streaming-amf"]);
- myConsumer.addEventListener(MessageEvent.MESSAGE, remote_messageHandler);
- myConsumer.subscribe();
- }
- //获取订阅的消息,以文本来显示显示
- private function remote_messageHandler(event:MessageEvent):void
- {
- var mess:String = event.message.body as String;
- demot.appendText("\n"+ mess);
- }
- //退订该消息
- protected function cbr_clickHandler(event:MouseEvent):void
- {
- subMessage.stopSendMessage("stop");
- myConsumer.unsubscribe(false);
- }
- protected function subMessage_resultHandler(event:ResultEvent):void
- {}
- ]]>
- </fx:Script>
- <fx:Declarations>
- <!—用来启动消息发布 -->
- <mx:RemoteObject id="subMessage" destination="RemoteMessage"
- result="subMessage_resultHandler(event)"> </mx:RemoteObject>
- </fx:Declarations>
- <s:TextArea x="445" y="42" width="257" id="demot"/>
- <s:Button x="445" y="210" label="订阅消息Remote" id="rbt" click="rbt_clickHandler(event)"/>
- <s:Button x="597" y="207" label="退订消息R" id="cbr" click="cbr_clickHandler(event)"/>
- </s:Application>
- package com.whut.daemon;
- import flex.messaging.MessageBroker;
- import flex.messaging.messages.AsyncMessage;
- import flex.messaging.util.UUIDUtils;
- public class DaemonMessage {
- private static FeedThread thread;
- //开始传递消息
- public void startSendMessage(String flags)
- {
- if (thread == null)
- {
- thread = new FeedThread();
- thread.start();
- }
- }
- //停止消息发布
- public void stopSendMessage(String flags)
- {
- thread.running=false;
- thread=null;
- }
- public static class FeedThread extends Thread
- {
- public boolean running = true;
- public void run() {
- MessageBroker msgBroker = MessageBroker.getMessageBroker(null);
- String clientID = UUIDUtils.createUUID();
- System.out.println("clientID="+clientID);
- while (running) {
- //异步消息
- AsyncMessage msg = new AsyncMessage();
- msg.setDestination("tick-data-feed111");
- msg.setHeader("DSSubtopic", "tick");
- msg.setClientId(clientID);
- msg.setMessageId(UUIDUtils.createUUID());
- msg.setTimestamp(System.currentTimeMillis());
- msg.setBody("hello");
- msgBroker.routeMessageToService(msg, null);
- try {
- Thread.sleep(500);
- } catch (InterruptedException e) {}}}}}
- <destination id="RemoteMessage">
- <properties>
- <source>com.whut.daemon.DaemonMessage</source>
- </properties>
- </destination>
转载于:https://blog.51cto.com/computerdragon/1143326
Flex通过Blazeds利用Remoteservice与后台java消息推送相关推荐
- 浅谈iOS和Android后台实时消息推送的原理和区别
http://www.52im.net/thread-286-1-1.html 前言 iOS和Android上的实时消息推送差异很大,往小了说是技术实现的差异,往大了说是系统实现理念的不同.实时消息推 ...
- java 消息推送_hanbo-push分布式消息推送、IM服务
系统概览 app接入除了接入restApi(push-admin)之外,还需要兼容connector(push-admin的client,用于和push-server通信)的通信协议. 基于proto ...
- 如何利用springboot快速搭建一个消息推送系统
最近在完善毕设的路上,由于是设计一个远程控制物联网系统,所以服务端到硬件我选用了MQTT协议.因为MQTT的发布/订阅模式很适合这种场景.接下来就来聊聊遇到的一些问题以及解决思路吧. 毕设技术栈:sp ...
- java 消息推送的几种方式比较
引言: 在互联网高速发展的时代里,web应用大有取代桌面应用的趋势,不必再去繁琐的安装各种软件,只需一款主流浏览器即可完成大部分常规操作,这些原因都在吸引着软件厂商和消费者.而随着各大厂商浏览器版本的 ...
- iOS和Android即时通讯开发时后台实时消息推送的原理和区别
iOS和Android上的实时消息推送差异很大,往小了说是技术实现的差异,往大了说是系统实现理念的不同.实时消息推送在移动端互联网时代很平常,也很重要,它的存在让智能终端真正成为全时信息传播的工具.本 ...
- apiCloud jpush java 消息推送使用
1.apicloud创建项目,以创建项目的可略过此步骤 2.集成jpush模块 3.生成证书并复制包名(极光官网创建项目时会用到) 4.进入极光官网http://www.jiguang.cn 注册成为 ...
- java消息推送与接收
package com.zl;import java.net.ServerSocket; import java.net.Socket; import org.apache.commons.mvc.u ...
- java消息推送怎么实现_调用钉钉接口实现机器人推送消息
一.摘要 现实交易中为了能及时了解发明者量化机器人交易状态,有时候我们需要将机器人所执行的交易结果发送到微信.邮箱.短信等等.但每天上百条各种各样的信息,使得对这些信息已经不敏感,导致重要的信息不能及 ...
- java消息推送怎么实现_PHP实现的消息实时推送功能
本文实例讲述了PHP实现的消息实时推送功能.分享给大家供大家参考,具体如下: 入口文件index.html <!DOCTYPE HTML> <html> <head> ...
最新文章
- 【APP】squid 3.0反向代理配置
- 数据结构-栈(C语言代码)
- c语言项目为什么要build?(gcc、makefile、cmake(qmake)、CMakeLists.txt)(qmake、cmake、qbs区别解析)(qmake还是cmake,mingw作用)
- 遥感RS植被指数大全整理
- 两个瓶子水怎样一样多_同事每天比我多睡两个小时!省下70万买了地铁站附近房子 杭州姑娘却感叹买房时一定是脑子进了水……...
- 后端连接oracle,【后端开发】php怎么远程连接oracle
- clickhouse修改表的TTL
- 手机版wps怎么制作折线图_手机简历制作 | 微信怎么在线制作简历
- c语言如何反复执行一段程序,C语言中重复执行程序的问题
- hive中:row_number()排序函数的使用
- 传染病模型(1)——SI模型及matlab详解
- 神经网络翻译是什么意思,神经网络用英文怎么说
- STM32-IIC模拟从模式
- airbnb房东_麻烦找房东侵入式监视筛查方法可能是罪魁祸首
- 美的java面试经验
- 通过百度地图API获取用户所在地理位置信息
- QQ 空间备份神器,一键备份你所有的青春!
- 程序员如何承接软件外包项目(转)
- 什么是SOA?什么是Dubbo?
- 一般计算机工作的电压,计算机的工作环境
热门文章
- sqlite_orm sync_schema源码即翻译
- 伤肾的九个恶习及解决办法(图)
- linux下如何做ghost,又简单又方便,很实用的方法!!!
- 开发优秀产品的六大秘诀
- 【ffmpeg for wince】音视频编解码多平台移植(for window/wince))ffmpeg
- 《千只鹤》:面对爱,我们永远还行走在成长的路上 ...
- CSS 中 的 margin、border、padding 区别 (内边距、外边距)
- js之base64上传图片
- ASP.NET MVC中controller和view相互传值的方式
- centos7-安装mysql5.6.36