Flash Communication Server笔记二

原创 2006年06月07日 12:31:00
连接到服务器

 

   要连接到FCS的一个实例,需要在客户端脚本使用Net NetConnection和NetConnection.connect命令发送请求到服务器。
     小技巧:还可以使用组件连接到服务器。

    启动服务

     如果服务器没有启动,必须手动启动它,在Windows开始菜单选择程序>Macromedia Flash Communication Server MX>Start Service。在Windows.
       如果希望查看服务是否运行,打开任务管理器,确定flashCom.exe和FlashComAdmin.exe是否在进程列表中。
     在unix中,打开shell窗口,更改目录到FCS的安装目录,作为一个root user,输入fcsmgr server start。
 
     打开一个到服务器的连接

     在flash中打开一个新文件,增加增加客户端脚本命令连接到服务器。
 
     1、    在flash电影中,开启一个连接:
     my_nc=new NetConnection();
     2、    下面这个命令连接到服务器。
     My_nc.connect(targetURI);
     上面是NetConnection.connect的基本用法。targetURI是一个位于FCS上的应用程序的URI,格式如下:
     rtmp://localhost[:port]/apName[/instanceName]
     localhost标识这个服务器运行在本地计算机上。
     rtmp://host[:port]/appName[/instanceName]
     注意,必须指定rtmp协议,如果没有指定,flashPlayer会使用http协议连接到服务器,导致连接失败。
     下面的代码展示了如何连接到应用服务器。
     My_nc:NetConnection=new NetConnection();
       My_nc.connect(“rtmp://myServer.myDomain.com/appName/appInstance”);
       my_nc = new NetConnection();    
       my_nc.connect("rtmp://myServer.myDomain.com/appName/appInstance");
 
        FCS应用程序常常需要去发布(广播)和回放一个流(文件)。安装FCS后包含一个FLA示例:/doc_connect/doc_connect.fla,样式了怎样在两个客户之间传送视频流。查看这个示例,可以知道怎样连接到fcs,以及怎样开发基于流的应用程序。
     Doc_connect文件显示了怎样初始化电影,连接到服务器,发布并且播放流。他也说明了怎样保存你的示例文件。
     在../help_collateral/doc_connect目录中可以打开doc_connect.fla文件。
 

     查看效果:
     1、    在服务器上创建一个名为doc_connect的应用程序。
     2、    在../help_collateral/doc_connect目录中打开doc_connect.swf文件。
     然后就可以看到两个视/音频播放窗口,一个是从camera中获得的实况流媒体,一个则是服务器发布的回放的流媒体。
     这个例子使用了FlashMX的fcsComponent,如果FlashMX中没有安装这些组件,可以采用这样的办法:
     1、在Flash中选择文件>新建,创建一个新文件.
     2、在库面板中创建一个视频对象(点击库面板的选项菜单,选择New Video)。
     3、 拖动该对象到舞台,创建两个该对象的实例,分别命名为live_video和Published_video,将Published_video的大小改为200*150;
     4、在fcs上创建名为doc_connect的目录,建立doc_connect的fcs应用程序。保存FLA文件doc_connect.fla在该目录中。
     5、选择时间轴的第一帧,打开动作面板(窗口>动作)。
     注意:确定动作在第一帧加载,而不是加载在舞台上的某个对象上。
     6、获得默认的camera(摄像头),并将它加载到live_video这个video对象上。
     Client_cam=Camera.get();
     Live_video.attachVideo(client_cam);

     创建一个连接到FCS的函数,使用trace显示是否连接成功,并且打开doc_connect应用程序中一个名为room_1的实例。记住,你必须指定real-time messaging protocol(实时信息协议,rtmp).
    function doConnect() {

    client_nc = new netConnection();
    client_nc.onStatus = function(info) {
        trace("Level: " + info.level + "   Code: " +  info.code);
    }
    client_nc.connect("rtmp://localhost/doc_connect/room_01");
    
}
      注意,如果你的swf和fcs运行在同一台计算机上,可以使用rtmp://localhost/doc_connect/test的缩写rtmp:/doc_connect/test建立连接。这样,你就可以移动这个文件到不同的服务器上而不需要改变你的代码。但是如果你的FlashMX和FCS不再同一台机器上,就必须指明服务器URL.
     为video创建名为out_ns的网络流,加载camera到这个流,并且发布这个流为myTestStream,这些步骤都在函数publishMe中完成
    function publishMe() {
    
    out_ns = new netStream(_root.client_nc);
    out_ns.attachVideo(client_cam);
    out_ns.publish("myTestStream");
    
}
     注意:out_ns.publish(“myTestStream”)省略了一个参数:howToPublish。如果不为该参数赋值,服务器将自动发布该stream为live(“实况转播”,而不讲这个stream记录在服务器上后在发布)
     在函数playMe中创建一个流in_ns,连接到client_nc这个Netconnect,让Published_video对象加载stream,播放流in_ns。
    function playMe() {
    
    in_ns = new netStream(_root.client_nc);
    Published_video.attachVideo(in_ns);
    in_ns.play("myTestStream");

}
     6     撰写下列命令调用刚才创建的函数。
    // 连接到服务器
     doConnect();

     // 发布live stream
     publishMe();

     //回放服务器发布的stream
     playMe();
     7     Save the file.
     保存该文件。
 
     测试这个例子
     1     Choose File > Publish Settings, select Flash and HTML, click Publish, and then click OK.
     1、选择文件>发布设置,选择flash和html,点击发布,然后点击OK
     2     Choose Control > Test movie.
     选择控制>测试电影
     你将看到两个视频窗口显示在舞台上,而且显示同样的影像。呵呵。
     3 、要想在浏览器中查看,选择文件>发布预览>默认,或者按ctrl+f12键


libgsc(Game Server Communication Library)(二)

github中包括四个eclipse工程. ). libgmisc, 工具包, 常用函数等, 与业务无关. b). libgsc, libgsc的实现. c). gas, 一个游戏鉴权服务器的de...

VideoIO Flash-based audio and video communication

VideoIO Flash-based audio and video communication Home What is Flash-VideoIO...

一个轻量级Actor并发框架的c++实现, libgsc(Game Server Communication Library)(一)

市面上至有两个比较有名的Actor的开源实现, 一个是akka, 基于jvm

libgsc(Game Server Communication Library)(五)

这个版本基本上达到了我最早想要的效果: 简洁, 直观, 无锁, 并行, 高效.   高效不一定是运行时的效率,  更多的是开发效率.  也就是最少的bug 产生可能性, 最快的代码实现.  ...

android开发艺术探索笔记--第二章IPC(InterProcess Communication)

线程是cpu调度的最小单位; 进程一般指一个执行单元,可以指一个程序或者一个应用。 Android中开启进程很简单,在四大组件中的Androidmanifest中指定android:process...
  • wxq888
  • wxq888
  • 2016年08月26日 17:47
  • 219

《APUE》chapter 15 Interprocess Communication 学习笔记(加上自己的代码)

Interprocess Communication

System Verilog视频学习笔记(10)- Inter-Thread Communication

Inter-Thread Communication(内部线程通信) 内容来自启芯-System Verilog视频 =======================================...

Flash – data communication

  • 2007年11月27日 10:03
  • 288KB
  • 下载

文献笔记《Analyzing Inter-Application Communication in Android》

文献引用:Chin E, Felt A P, Greenwood K, et al. Analyzing inter-application communication in Android[C]//...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Flash Communication Server笔记二
举报原因:
原因补充:

(最多只允许输入30个字)