FMS教程

  • 格式:doc
  • 大小:592.00 KB
  • 文档页数:91

第一章开始一、FlashCom开发所需安装的软件和硬件:1. FlashMX authoring2. FlashMX Communication Server3. ActionScript editor (笔者推荐editplus )4. Flash Player5. Camera and Micophone二、设置开发环境1. 确保FlashCom server已经启动2. 更改运行FlashCom Server的URL地址new_nc.connect('rtmp:/video/room_01');//本地服务器或者使用new_nc.connect('rtmp:///video/room_01');//远程服务器如果使用simpleconnect组件,直接在组件的属性中设置即可3. 指定发布格式一般为html和swf4. 书写client-side 的as脚本,一般写在第一帧5. 书写server-side的asc脚本,一般为main.asc或组件对应的app_name.asc6. 加载组件,如果使用默认的组件,可以通过下面的语句简单加载load('components.asc');//该文件在scriptlib目录下面7. 初始化 client-side 代码. 给第一行添加下面代码#include 'Netdebug.as'以便进行NetConnection 调试(ps.新版的FlashCom Server已经不包含netdebug.as 文件,需要安装Flash Remote )8. 监视应用程序通过FlashCom自带的应用程序管理器和管理工具来监控和管理 [ 中文版见这里 ]三、大致开发步骤1. 设定应用程序目录并在服务器端注册在服务器端的application目录下建立相应的子目录就可以了(也就是项目main.asc 文件所放置的目录了)记住服务器端的任何改动都需要重启FlashCom Server才能生效2. 在客户端建立链接1. my_nc = new NetConnection();my_nc.connect('rtmp:///app_name');//app_name即为新建的子目录名2.3. 保存客户端的fla文件到任何地方(如果涉及后台交互的话建议保存在webserver目录下)4. 如果包含client端需要相应的server端的asc文件,请拷贝到server端的相应目录(建议保持和客户端相同的文件名,而只是后缀不同)5. 然后发布你的swf文件并运行默认的服务器端asc文件存储位置在C:\Program Files\Macromedia\Flash Media Server 2\applications.当你需要创建一个应用程序时,就需要在applications下面建立子目录,存放下面的数据文件:asc 服务器端通信文件flv 数据流播放文件fso 远程共享对象数据文件客户端的swf和html(或者php等服务器文件)可以放在你指定的任何目录,在产品发布的时候需要移走fla源文件。

每一个应用程序的实例也位于不同的目录,如:my_nc.connect('rtmp:///chatApp/room_01')my_nc.connect('rtmp:///chatApp/room_02')如果没有指定实例,客户端实际上连接到一个默认的名为_defInst_的实例,可以对不同的实例建立不同的共享对象01 : // One instance of application 'support'02 : first_nc = new NetConnection();03 : first_nc.connect('/support/session1');04 : first_so = SharedObject.getRemote('CustomerInfo', first_nc.URI, false);05 : first_so.connect(first_nc.URI);06 :07 : // Another instance of application 'support'08 : second_nc = new NetConnection();09 : second_nc.connect('/support/session2');10 : second_so = SharedObject.getRemote('CustomerInfo', second_nc.URI, false);11 : second_so.connect(second_nc.URI);四、在FlashCom中使用的文件类型1. ASC 和 JS 文件服务端使用的文件类型Flash Communication Server 在服务端的scriptlib 目录下提供了一个脚本库,包含了一些组件和Flash Remoting services.的server端脚本2. FLV 和 IDX 文件视频播放文件和索引文件3. SOL, SOR 和 FSO文件共享对象数据文件(依次为Local、Remote和两者)一个简单的连接服务器示例首先确保服务器已经启动,在windows下面可以直接启动服务就可以了。

在Linux下面需要运行 server start命令启动。

在客户端写代码打开连接my_nc = new NetConnection();//创建连接对象my_nc.connect(targetURI);//连接服务器参数格式为:其中实例名可以省略rtmp://localhost:port/appName/instanceName //本地服务器也可以省略前面的直接写成rtmp:/appName/instanceNamertmp://host:port/appName/instanceName//远程服务器注意协议类型一定要使用rtmp,否则会连接失败下面是一个简单的实现方法:1 : //获取和设置摄像头2 : client_cam = Camera.get();3 : Live_video.attachVideo(client_cam);//建立远程连接1 : function doConnect() {2 : client_nc = new NetConnection();3 : client_nc.onStatus = function(info) {4 : trace('Level: ' + info.level + ' Code: ' + info.code);5 : }6 : client_nc.connect('rtmp://localhost/doc_connect/room_01');7 : }//发布视频流1 : function publishMe() {2 : out_ns = new NetStream(_root.client_nc);3 : out_ns.attachVideo(client_cam);4 : out_ns.publish('myTestStream');//采用默认的live播放形式5 : }//播放视频流1 : function playMe() {2 : in_ns = new NetStream(_root.client_nc);3 : Published_video.attachVideo(in_ns);4 : in_ns.play('myTestStream');5 : }定义好这些函数后,就可以用下面的代码简单实现1 : // Connect to the server2 : doConnect();3 : // Publish the live stream4 : publishMe();5 : // Play back the stream from the server6 : playMe();第二章Flash Communication Server结构概要Flash Communciation Server 包含了server端(由一些asc文件组成)和client端(swf文件)server端和client端的数据传输通过Real-Time Message Protocol (RTMP)进行实时交流,web server通过http服务把内容提供给client端,实现模式如下图:多用户可以连接到同一个应用程序ApplicationFlash Communciation Server实际上为不同的用户之间提供了相互交流的通道。

基于客户/服务器模式的application,服务器端主要负责数据的传输,由客户端发送请求,服务器端执行数据查询和计算并返回结果值给客户端,通常需要保持长时间的连接。

Flash Communciation Server提供了两种方法控制用户的更多交互:数据流和共享对象.数据流是指在服务器端和客户端同步传递的音频、视频和其它数据的信息流,数据流可以通过简单的发布和订阅方式实现。

一个发布的数据流可以实时的被看到(如视频),也可以被录制下来以后播放。

录制的数据流被存为Flash Video (FLV) 格式,其中可以包含文本、音频和视频等信息。

当然你也可以把存在的通过第三方的软件录制的视频和音频文件转换为flv格式的文件。

共享对象在FlashCom 开发过程中可以使用两种共享对象:本地和远程共享对象。

本地共享对象可以看作是Flash cookie,可以在用户的本地机器存放用户数据,其本身为Flash player提供,可以无须FlashCom Server的支持。

远程共享对象是由FlashCom Server来管理的,提供了信息和数据的同步,以及数据的存储。

Flash客户端连接、提交给远程共享对象,并且与服务器端保持同步。

信息数据还可以发布到所有连接到远程共享对象的客户端,并通过应用程序的session或临时文件持续。

更多的信息请参考共享对象类。

连接外部数据源根据FlashCom的数据流和共享对象提供的交流模型,FlashCom Server还可以和外部数据源交互,例如web 服务器、关系数据库,甚至其它的FlashCom Server应用程序。

例如,你可以写一个服务器端的脚本文件来连接一个web服务器或ColdFusion应用程序来接收一串用户名和电话号码的列表,然后把查询结果写入共享对象。