http://flexman.blog.sohu.com/129838570.html

http://flexman.blog.sohu.com/130007574.html

step 1: 首先要确定RTMP的端口,可以利用netstat -an来查看

step 2: 修改services-config.xml,确保有rtmp的相关节点:

  1. <channel-definition id="my-rtmp" class="mx.messaging.channels.RTMPChannel">
  2. <endpoint uri="rtmp://{server.name}:8323" class="flex.messaging.endpoints.RTMPEndpoint"/>
  3. <properties>
  4. <idle-timeout-minutes>20</idle-timeout-minutes>
  5. </properties>
  6. </channel-definition>

step 3: 在网站新建apps目录,并添加MyChatRoom文件夹作为应用程序目录

step 4: 定义MyChatApp类继承自FluorineFx.Messaging.Adapter.ApplicationAdapter,并定义供客户端调用的方法GetResult()

step 5: 在应用程序目录(MyChatRoom)里添加配置文件app.config,内容如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <configuration>
  3. <application-handler type="ServiceLibrary8.MyChatApp"/>
  4. </configuration>

step 6: 新建Flex项目,分为 连接rtmp 和 调用方法 两部分来实现

服务器端:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using FluorineFx.Messaging.Adapter;
  5.  
  6. namespace ServiceLibrary8
  7. {
  8. public class MyChatApp : ApplicationAdapter
  9. {
  10. public string GetResult(string name, int age)
  11. {
  12. return name + " is " + age + " years old";
  13. }
  14. }
  15. }

Flex端:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
  3. <mx:Button x="211" y="69" label="连接RTMP" click="onConnectClick()" />
  4. <mx:Button x="190" y="113" label="调用RTMP提供的方法" click="onFunctionClick()" />
  5. <mx:Label id="lblResult" x="230" y="31" text="Label"/>
  6.  
  7. <mx:Script>
  8. <![CDATA[
  9. import mx.rpc.events.ResultEvent;
  10.  
  11. private var nc:NetConnection;
  12.  
  13. private function onConnectClick():void
  14. {
  15. nc = new NetConnection();
  16. nc.connect("rtmp://localhost:8323/MyChatRoom");
  17. nc.addEventListener(NetStatusEvent.NET_STATUS, netStatus);
  18. nc.client = this;
  19. }
  20.  
  21. private function netStatus(event:NetStatusEvent):void
  22. {
  23. var strCode:String = event.info.code;
  24. if(strCode=="NetConnection.Connect.Success")
  25. {
  26. this.lblResult.text = "连接RTMP成功!";
  27. }
  28. else
  29. {
  30. this.lblResult.text = "连接RTMP失败!";
  31. }
  32. }
  33.  
  34. private function onFunctionClick():void
  35. {
  36. var responder:Responder = new Responder(onResult,onError);
  37. nc.call("GetResult",responder,"袁承志",20);
  38. }
  39.  
  40. private function onResult(result:String):void
  41. {
  42. this.lblResult.text = "方法返回结果:" + result;
  43. }
  44.  
  45. private function onError(event:Event):void
  46. {
  47. this.lblResult.text = "调用方法失败!";
  48. }
  49. ]]>
  50. </mx:Script>
  51.  
  52. </mx:Application>

即时通信(RPC)的Rtmp实现--配置篇的更多相关文章

  1. 即时通信(RPC)的Rtmp实现--代码实现篇

    实现的一般步骤是: step 1: 定义NetConnection对象连接rtmp,并监听NetStatusEvent.NET_STATUS事件 step 2: 在NetStatusEvent.NET ...

  2. iOS开发之使用XMPPFramework实现即时通信(二)

    上篇的博客iOS开发之使用XMPPFramework实现即时通信(一)只是本篇的引子,本篇博客就给之前的微信加上即时通讯的功能,主要是对XMPPFramework的使用.本篇博客中用到了Spark做测 ...

  3. (转)基于即时通信和LBS技术的位置感知服务(三):搭建Openfire服务器+测试2款IM客户端

    主要包含4个章节: 1. Java 领域的即时通信的解决方案 2. 搭建 Openfire 服务器 3. 使用客户端测试我们搭建的 Openfire 服务器 4. Smack 和 ASmack 一.J ...

  4. 【原】iOS学习43即时通信之XMPP(2)

    本篇是 即时通信之XMPP(2) 接上次 即时通信之XMPP(1) 1. 好友列表 1> 初始化好友花名册 // 获取管理好友的单例对象 XMPPRosterCoreDataStorage *r ...

  5. QQ 腾讯QQ(简称“QQ”)是腾讯公司开发的一款基于Internet的即时通信(IM)软件

    QQ 编辑 腾讯QQ(简称“QQ”)是腾讯公司开发的一款基于Internet的即时通信(IM)软件.腾讯QQ支持在线聊天.视频通话.点对点断点续传文件.共享文件.网络硬盘.自定义面板.QQ邮箱等多种功 ...

  6. 使用flask_socketio实现客户端间即时通信

    前期没有来得及好好总结,现在复习总结一下: Socket.IO 背后主要的思想是你可以发送和接收想要的任何事件,携带你想要的任何数据.任何可以编码为 JSON 的对象都可以做到,并且也支持二进制数据. ...

  7. android-使用环信SDK开发即时通信功能及源代码下载

    近期项目中集成即时聊天功能.挑来拣去,终于选择环信SDK来进行开发,选择环信的主要原因是接口方便.简洁.说明文档清楚易懂.文档有android.ios.和后台server端.还是非常全的. 环信官网: ...

  8. (转)Linux-HA开源软件Heartbeat(配置篇)

    原文:http://ixdba.blog.51cto.com/2895551/548625 http://gzsamlee.blog.51cto.com/9976612/1828870 Linux-H ...

  9. iOS开发之使用XMPPFramework实现即时通信

    iOS开发之使用XMPPFramework实现即时通信   关于XMPP的理论介绍在本篇博客中就不做赘述了,如何在我们之前的微信中加入XMPP协议来实现通信呢?下面将会介绍一下XMPP的基本的知识,让 ...

随机推荐

  1. SlidingPaneLayout的基本使用

      SlidingPaneLayout是V4包中新添加的组件,可以实现两列面板的切换.说先来看看API文档的说明: ? 1 SlidingPaneLayout provides a horizonta ...

  2. Application Cache

    轉發處:http://www.cnblogs.com/blackbird/archive/2012/06/12/2546751.html HTML5提供了一系列的特性来支持离线应用: applicat ...

  3. Hadoop学习笔记1---简介 优点 架构分析

    一.Hadoop简介 Hadoop最早起源于Nutch.Nutch是一个开源的网络搜索引擎,由Doug Cutting于2002年创建.Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取. ...

  4. table表格的属性

    border="1"----边框 cellpadding="10%"----单元边缘与其内容之间的空白距离 cellspacing="10%" ...

  5. jxse2.6在jdk8下,JxtaMulticastSocket存在的问题

    JxtaMulticastSocket覆写了java.net.MulticastSocket的bind方法: @Override public void bind(SocketAddress addr ...

  6. LightOJ 1259 Goldbach`s Conjecture (哥德巴赫猜想 + 素数筛选法)

    http://lightoj.com/volume_showproblem.php?problem=1259 题目大意:给你一个数n,这个数能分成两个素数a.b,n = a + b且a<=b,问 ...

  7. devexpress皮肤设置

    DEV的皮肤管理控件:SkinController: TdxSkinController; 皮肤设置:SkinController.SkinName := appInfo.SkinName; TdxR ...

  8. C++拓扑排序

    安利一篇比较写的比较好的的博客... 拓扑排序的原理及其实现 我本来以为我看懂了原理就会打了,没想到因为没有手动实践过...原理实际上也没记清楚.... 一题HDU的拓扑裸题HDU 3342 我的拓扑 ...

  9. css div 垂直居中

    参考:http://css-tricks.com/centering-in-the-unknown/ <style> .valign { font-size: 0px;/* clear s ...

  10. thinkphp过滤html、script

    使用tp3.1版本 1.APP/common 自定义函数 function filter_default(&$value){ $value = htmlspecialchars($value) ...