即时通信(RPC)的Rtmp实现--配置篇

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的相关节点:

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

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

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

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

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

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

服务器端:

using System;
using System.Collections.Generic;
using System.Text;
using FluorineFx.Messaging.Adapter;

namespace ServiceLibrary8
{
    public class MyChatApp : ApplicationAdapter
    {
        public string GetResult(string name, int age)
        {
            return name + "  is  " + age + " years old";
        }
    }
}

Flex端:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	<mx:Button x="211" y="69" label="连接RTMP" click="onConnectClick()" />
	<mx:Button x="190" y="113" label="调用RTMP提供的方法" click="onFunctionClick()" />
	<mx:Label id="lblResult" x="230" y="31" text="Label"/>

	<mx:Script>
		<![CDATA[
			import mx.rpc.events.ResultEvent;

			private var nc:NetConnection;

			private function onConnectClick():void
			{
				nc = new NetConnection();
				nc.connect("rtmp://localhost:8323/MyChatRoom");
				nc.addEventListener(NetStatusEvent.NET_STATUS, netStatus);
				nc.client = this;
			}

			private function netStatus(event:NetStatusEvent):void
			{
				var strCode:String = event.info.code;
				if(strCode=="NetConnection.Connect.Success")
				{
					this.lblResult.text = "连接RTMP成功!";
				}
				else
				{
					this.lblResult.text = "连接RTMP失败!";
				}
			}

			private function onFunctionClick():void
			{
				var responder:Responder = new Responder(onResult,onError);
				nc.call("GetResult",responder,"袁承志",20);
			}

			private function onResult(result:String):void
			{
				this.lblResult.text = "方法返回结果:" + result;
			}

			private function onError(event:Event):void
			{
				this.lblResult.text = "调用方法失败!";
			}
		]]>
	</mx:Script>

</mx:Application>
时间: 2024-10-10 08:52:19

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

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

实现的一般步骤是: step 1: 定义NetConnection对象连接rtmp,并监听NetStatusEvent.NET_STATUS事件 step 2: 在NetStatusEvent.NET_STATUS事件里判断event.info.code=="NetConnection.Connect.Success",通过SharedObject.getRomote()得到SharedObject对象 step 3: 监听SharedObject对象的SyncEvent.SYNC事件

百度云消息推送机制在即时通信聊天界面的信息处理,技巧篇。

转载请注明出处:http://blog.csdn.net/yianemail/article/details/47044019 百度云消息推送,消息在客户端的处理以及消息显示方式是基于通知栏消息提示. 但是这明显不是我们想要的效果,我们想要的是利用它实现聊天,即:在通信聊天界面如何实时更新推送的消息,以不断接受的消息实现聊天. 一:我们知道利用百度消息推送,要实现自己的PushMessageReceiver. 里边重要的是有三个方法,即: public class BaiduPushReceiv

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

主要包含4个章节: 1. Java 领域的即时通信的解决方案 2. 搭建 Openfire 服务器 3. 使用客户端测试我们搭建的 Openfire 服务器 4. Smack 和 ASmack 一.Java领域的即时通信的解决方案 Java领域的即时通信的解决方案可以考虑openfire+spark+smack. 1. Openfire是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前最新的版本为3.6.4,网上可以找到下载的源代码. 2. 即时通信客户端可使用spark2.5.

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

上篇的博客iOS开发之使用XMPPFramework实现即时通信(一)只是本篇的引子,本篇博客就给之前的微信加上即时通讯的功能,主要是对XMPPFramework的使用.本篇博客中用到了Spark做测试,当然也少不了Openfire服务器,在这就不详述Openfire的安装过程了(网上的教程还是蛮多的),Openfire的安装仅需要一个数据库的支持,本篇是用的MySql数据库.当然这不是本篇的重点. 废话少说,切入今天的正题.今天要给之前的微信加入登陆,获取好友列表,聊天(发送文字,表情,图片,

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

iOS开发之使用XMPPFramework实现即时通信 关于XMPP的理论介绍在本篇博客中就不做赘述了,如何在我们之前的微信中加入XMPP协议来实现通信呢?下面将会介绍一下XMPP的基本的知识,让我们的微信可以实现互联通信.要做的准备工作是要有服务器支持XMPP协议,然后通过spark注册个测试账号,最后就可以通过XMPP用我们已有的账号和密码进行通信啦.至于如何使服务器支持XMPP协议,如何通过Spark注册账号,不是本篇博客的论述主题,本篇博客中主要是如何在我们的App中使用XMPP协议.

iOS学习43即时通信之XMPP(2)

本篇是 即时通信之XMPP(2) 接上次 即时通信之XMPP(1) 1. 好友列表 1> 初始化好友花名册 // 获取管理好友的单例对象 XMPPRosterCoreDataStorage *rosterStorage = [XMPPRosterCoreDataStorage sharedInstance]; // 给roster属性进行初始化 self.xmppRoster = [[XMPPRoster alloc] initWithRosterStorage:rosterStorage di

详解C# 网络编程系列:实现类似QQ的即时通信程序

引言: 前面专题中介绍了UDP.TCP和P2P编程,并且通过一些小的示例来让大家更好的理解它们的工作原理以及怎样.Net类库去实现它们的.为了让大家更好的理解我们平常中常见的软件QQ的工作原理,所以在本专题中将利用前面专题介绍的知识来实现一个类似QQ的聊天程序.  一.即时通信系统 在我们的生活中经常使用即时通信的软件,我们经常接触到的有:QQ.阿里旺旺.MSN等等.这些都是属于即时通信(Instant Messenger,IM)软件,IM是指所有能够即时发送和接收互联网消息的软件. 在前面专题

web即时通信1--WebSocket与WebRTC的三种实现方式对比

转自:http://demo.netfoucs.com/jrn1012/article/details/41982971 最近应项目组要求研究了下WebRTC(目前支持Firefox和Chrome),WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术.WebRTC使得开发者在浏览器无需安装任何插件就可

Smack实现XMPP即时通信--接收消息

Smack实现XMPP即时通信的发送消息,在上一篇博客中已经有所介绍的了! 关于接收消息 网上有对应的博客介绍 1.smack api学习       http://314858770.iteye.com/blog/908246 2.Smack开发Demo---发送并接收消息   http://blog.csdn.net/majian_1987/article/details/9474027 以上2个博客都对该问题有了自己的阐述,但是在真正开始使用的时候,发现代码不太能通过,自己就调试了一版自己