`
udj38udj
  • 浏览: 14283 次
社区版块
存档分类
最新评论

Flash Communication Server

 
阅读更多

Flash Communication Server
2009年11月26日
  Flash Communication Server起步_1
  Author:sword PublishTime:2005-08-06
  下面让我们一起来学习一下怎样设置flashCommunicationServer的开发环境,怎样部署你的应用程序,最后让我们一起来创建一个简单的连接到服务器的应用程序。
  要进行FCS应用程序的开发,必须安装Macromedia Flash MX,Flash Communication Server,以及最近发布的Flash Player。如果应用程序中需要抓取视频或者音频,还需要安装麦克风和摄像头。此外,如果应用程序需要撰写服务端脚本,像Macromedia DreamweaverMX这样,支持UTF-8编码的javascript编辑器也将需要安装。
  在开始开发FCS应用程序之前,下列知识是必须知道的。
  FCS服务器是否正在运行?如果要发布或者测试应用程序,FCS服务器必须运行。
  指定服务器的URI。如果FlashMX和FCS安装在同一台计算机上,可以这样指定连接到服务器的URI:
  new_nc.connect(“rtmp:/doc_record/room_01”);
  否则,需要指定服务器真实的的URI(例如,服务器运行在myServer.myDomain.com上),可以这样指定fcs连接:
  New_nc.connect(“rtmp://myServer.myDomain.com/doc_record/room_01”);
  注意:确定rtmp后面是双斜线,只有在swf文件和FCS在同一计算机上时才可以使用单斜线。
  指定发布格式。FlashMX可以将应用程序发布为swf文件或者html文件。选择文件>发布设置可以在发布时指定发布的格式。
  撰写客户端AS代码。除非另有说明,客户端AS代码都应该写在FLA文件的第一帧的某layer上,而不是一个单独的对象。
  撰写服务器段AS代码。如果应用程序有服务器段代码,它应该放在服务器段脚本文件之中。这个文件通常被命名为main.asc(或者类似registered_app_name.asc的文件名)。使用DWMX或者其他的javascript编辑器撰写撰写服务器段代码,请注意,服务器段代码同样是大小写敏感的。
  加载component.asc。如果在应用程序中使用了通讯组件,必须加载位于scriptlib目录中的commponents.asc。
  那么,怎样加载该文件了?首先创建一个服务器段脚本文件并保存为合适的文件名(例如main.asc),然后在文件的顶部增加下列代码:
  Load(“components.asc”);
  小技巧:你可以复制应用的组件文件到应用程序目录下。
  初始化客户端代码:在每个FLA文件的第一行增加下列代码:
  #include “Netdebug.as”
  它可以让我们使用NetConnection调试器来跟踪streams或者shared objects在应用程序中的使用情况。在任何时候,你都可以删除这一行代码。
  尊重用户的隐私。在开始记录或者广播任何图片或者声音,都应该获得图片/声音所有者的许可。
  监视运行的程序:如果你是服务器的管理员,在程序运行期间,你可以查看程序的详细情况,比如log信息,so的值等等。在flashMX中打开Communictaion APP inspector面板,连接到FCS,选择要查看的应用程序实例,选择view Detail。
  下面我们将通过实际制作一个FCS应用程序来认识FCS应用程序的开发过程。
  下表列出了开发该应用程序需要完成的任务:
  1、 为应用程序命名,并且在服务器上注册该应用程序。假如应用程序名为my_app,在FCS的applications目录下,创建一个以my_app命名的目录,my_app即在FCS上注册的应用程序名,而my_app目录就是注册的应用程序目录。
  2、 在FlashMX中,创建一个FLA文件,它应该包含对新注册的应用程序my_app的URI的连接。通过建立一新NetConnection来完成这一步骤,如下.
  My_nc:NetConnection=New NetConnection();
  My_nc.connect(“rtmp://mydomain/my_app”);
  3、 保存该FLA文件。你可以将它保存在任何地方。在部署应用程序时,只需要FLA发布的swf文件。
  4、 如果包括服务器端AS,需要将该脚本文件放在FCS服务器上的my_app目录下或者该目录的/scripts目录下。该文件应该被命名为main.asc或者my_app.asc。
  5、 发布swf文件。Swf文件不需要放在fcs服务器上。你可以将它放在任何客户可以接触到的地方,比如,你可以通过email将该文件发送给你的客户。
  或者,你的应用程序还有更多的步骤,不过无论如何,上述步骤对任何一个FCS应用程序来说都是必须的。
  小技巧:Macromedia推荐使用不包括空格的小写字母为应用程序命名,这样无论你的应用程序在哪一种平台(windows/linux/macOS)上都可以正常使用。
  下面将介绍如何让FCS应用程序数据能被服务器找到,以及怎样运行该应用程序实例。
  保存服务器端文件和客户端文件
  应用程序的服务端文件的默认位置在windows平台下应该在C:\Program files\Macromedia\Flash Communication Server MX\applications。通常,FCS应用程序应该放在该目录下的一个与应用程序同名的子目录下。在该子目录下放置应用程序数据――ASC文件,保存的流文件(flv),以及远程SO文件(FSO)。
  至于客户端文件(SWFs和HTMLs),可以放在任何地方(通常都放在web服务器上),至于FLA文件,仅在开发应用程序时需要,发布时应该将该文件排除在外――最好是把该文件放在安全的地方。
  在开发期间,可以将这些文件都放在一块。在发布应用程序时,ASC、FSO以及FLV文件必须保留在服务器上的应用程序目录中,只有swf和html文件需要发放给客户。
  在任何一个案例中,都必须在applications目录下为应用程序创建一个同名的目录(即使应用程序没有服务器端脚本,因为FCS需要存储流文件或者shared object文件在该目录中),当客户端发送NetConnection.connect命令时可以找到应用程序。
  下面的例子中,假设用户调用chat_app应用程序。
  NetConnection.connect(“rtmp://myDomain/chat_App”);
  注意:服务器端脚本文件的扩展名也可以是.js,如果这样,你可以把服务器端脚本文件放在应用程序目录下的scripts目录下。
  使用应用程序实例
  FCS应用程序的实例类似于ASP应用程序中的Session(会话),应用程序通过创建应用程序实例运行。当某个客户端连接到应用程序,它实际上是连接到应用程序的一个实例。例如客户端连接到一个名为chat_app的应用程序:
  nc.connect(“rtmp://myDomain.com/chat_app”);
  因为没有指定实例,客户端实际上连接到一个默认的名为_defInst_的实例。
  当然,也可以让客户端连接到指定的实例:
  nc.connect(“rtmp://myDomain.com/chat_app/instance1”);
  在这里,客户端连接到的实例名为instance1。
  通过指定实例名,可以让客户端在应用程序下“分组活动”。比较常见的是聊天程序中,根据主题的不同把不同的客户分成不同的房间(room),就像下面的例子中所展现的:
  My_nc.connect(“rtmp://myDomain /chatApp/room_01”);
  My_nc.connect(“rtmp://myDomain/chatApp/room_02”);
  每个应用程序实例名都是独一无二的,与实例所在的应用程序不同,单独得实例不需要在服务器上定义自己的目录。可是,应用程序的资源,比如streams(流),shared objects,都独立于所有的实例,并被保存在自己的目录(应用程序可以设置streams和so存储的目录)中。
  另一个使用实例的原因是,它可以避免应用程序在创建streams或者so是产生冲突。在上面的例子中,room_01创建的streams和so与room_2创建的stream、so是截然不同的,反之亦然,即使两个实例都同时运行在chatApp应用程序中。
  例如,虽然support应用程序中的下列代码创建了两个同样名为CustomertInfo的so,support应用程序的不同实例都只会访问他自己的CustomerInfo对象。同样,session1和session2中的CustomerInfo数据是不同的。
  first_nc = new NetConnection();
  first_nc.connect("myserver.mydomain.com/support/session1");
  first_so = SharedObject.getRemote("CustomerInfo", first_nc.URI, false);
  first_so.connect(first_nc.URI);
  second_nc = new NetConnection();
  second_nc.connect("myserver.mydomain.com/support/session2");
  second_so = SharedObject.getRemote("CustomerInfo", second_nc.URI, false);
  second_so.connect(second_nc.URI);
  实际上,可以用任意字符串为应用程序中的实例命名。在FCS自带的教程中就有一个动态创建实例名的例子,代码可以参考tutorial_textchat目录下的tutorial_textchat.fla。
  你可以调整与应用程序实例相关的设置。通过修改Application.xml文件比如实例超时时间的设定。在vhost.xml文件中,可以设置能够连接到位于此虚拟主机上的应用程序的客户数。
  除了使用FlashMX创建的文件类型(fla,swf以及swd)之外,FCS使用或者创建下列文件类型:
  ASC和JS文件:由用户创作并且提供给FCS的服务器端脚本文件,比如components.asc。
  fCS在/scriptlib目录下提供了一个脚本库,包含了组件和Flash Remoting Services使用的服务器端脚本。当你和commpontent(组件)或者Flash Remoting Services一起使用FCS时,请从/scriptlib目录中包含(include),或者加载(load)适当的脚本到应用程序的服务器端脚本文件中。/scriptlib目录的路径由Application.xml配置文件中的标签指定。
  FLV和IDX文件:记录streams(流)的文件(flv),以及和flv关联的索引文件(IDX)。当服务器开始记录流时,他同时为指定的应用程序实例创建一个相应的子目录,并将flv文件和idx文件存放在该目录中,例如/applications/chat_app/streams/instance2
  Sol,sor以及fso文件:记录客户端状态、服务器端状态或两者状态的so文件。So文件存储的位置依赖于so对象的类别的不同而不同。
分享到:
评论

相关推荐

    FCS(Flash Communication Server)

    Flash Communication Server

    FMS2.0软件

    Flash大家庭里的一员,这个东东以前叫Flash Communication Server,传说中的FCS就是这个,现在改叫FMS了... 不见不知道哦,一见真可怕,adobe还有这么cool的东东,自从见了她,让我做些小东东的兴趣全没了,一心想...

    Flash media server 中文翻译

    Flash media server(原名Flash Communication Server)自带的资料都是英文版的,对于许多的读者来说,阅读起来很不方便,这一份中文版的翻译,真不错,可惜只有一部分,但是对于学习FMS入门绝对是一份很好的教材

    FlashVideoTechnologyAndOptimizations

    (这个话题对于Flash Communication Server 程序员来说是很有意思的。) 在第三和最后一章,讲述了在Flash视频编码技术标准下两种提高实时编码性能的优化方式。 如果你是视频压缩技术方面的专家,或者你对怎样提高实时...

    FlashMediaServer3.5

    Flash大家庭里的一员,这个东西以前叫Flash Communication Server,传说中的FCS就是这个,现在改叫FMS了。 视频录制啊,flash聊天室啊,在线视频会议啊啊, 网络游戏, 他都能做到。 下载一个吧~~~亲~~~~~

    Flash – data communication

    Flash – data communication(DOC,PPT,CODE) AMF ,FLASHVARS, FLEXDATALOADING,GETURL, LOADVARS,SERVERCODE,WEBSITE,XML,XML-LOADVARS

    dqus网络电台

    应用JSP、flashMX2004软件结合flash communication server服务,设计适合大众的视频电台 主要功能: 1.在线NJ视频,电台广播 2.提供公共聊天室 3.管理员功能:添加删除和编辑NJ、管理员、 节目信息、电台公告 ...

    彩森视频网络电台(DQUS版)

    为适应网络媒体的发展,满足人们娱乐生活的需要,本系统应用JSP、flashMX2004软件结合flash communication server服务,设计适合大众的视频电台。主要功能:1在线NJ视频,电台广播2.提供公共聊天室 3.管理员功能:...

    彩森视频网络电台(DQUS版).rar

    为适应网络媒体的发展,满足人们娱乐生活的需要,本系统应用JSP、flashMX2004软件结合flash communication server服务,设计适合大众的视频电台。 主要功能: 1在线NJ视频,电台广播 2.提供公共聊天室 3.管理员功能...

    JLink_Windows_V648.zip

    DLL: RISC-V: Interrupts were not disabled correctly during flash programming for built-in flash algos (works well for open flash loaders). Fixed. DLL: RISC-V: Reset could fail with "core did not halt ...

    GNS3模拟ASA防火墙详解(绝对适合新手)

    由于我使用的GNS3是0.8.6免安装版,所以别人没遇到的问题,我遇到了(测试qemu,启动失败) 别人遇到的network error、lost communication with server 127.0.0.1:10525/ASA flash为0/ASA不能保存配置等问题我也一个...

    Content Delivery Policies for Interactive Video Network

    Generation Network (NGN), in which the application server resources are typically shared by multiple end users. Content delivery policy is one of the most important issues in such kind of network due ...

    PROGRAMMING ACTIONSCRIPT 3.0

    Flash Player API features...23 Compatibility with previous versions24 Chapter 2: Getting started with ActionScript..27 Programming fundamentals27 What computer programs do..27 Variables and constants....

    asp.net知识库

    将 ASP.NET 2.0 应用程序服务配置为使用 SQL Server 2000 或 SQL Server 2005 ASP.NET 2.0 中的数据源控件 使用 ASP.NET 2.0 ObjectDataSource 控件 ASP.NET 2.0 的内部变化 使用SQL Cache Dependency 代替 ...

    vxworks_kernel_programmers_guide_6.9

    NFS V3 Server Optimization ........................................................................... 20 DOSFS Name Length Compatible ....................................................................

Global site tag (gtag.js) - Google Analytics