java代码去连接flash media server服务器_flash media server 第一课:Hello world!

client-server架构

FMS是基于RTMP协议的client-server架构。

客户端的应用由flash或是flex搭建,运行在flash

player或是AIR上,服务器端运行在服务器上。客户端的代码可以由actionscript1.0,2.0,3.0编写,服务端的代码有专门的服务器端actionscript(类似actionscript1.0)编写。服务器端的应用在哪里呢?安装目录下的application文件夹里的东西就是服务器端的应用,一个文件夹对应一个应用,客户端其实是链接到FMS的某个应用的。如何建立这样的应用呢?很简单,在application文件夹里再建一个文件夹就成了,把你的脚本就放到这个文件夹里。这个脚本文件的名字一定要与它所在的文件夹的名字一样,后缀名为asc。假如在FMS的安装目录里的application文件夹里新建一个hw的文件夹,想在这个文件夹里建立一个应用程序,这个程序名必须为:hw.asc。当然,也可以与文件夹名不相同,那就必须叫main.asc。只有这两种选择。服务器端的应用无外乎下面几种用处:1)验证连接到的用户;2)当用户连接或是断开时执行某些逻辑;3)更新客户端;4)控制流;4)链接到其他服务器。

不得不说说服务器端的脚本的两个很特别的对象:client对象和application对象。当一个客户端链接到FMS时,FMS就会建立一个client类,来代表这个客户端。application对象是一个代表服务器端应用的实例。这个对象可以访问客户端,断开连接,停止服务器端应用等。

多媒体应用的组成

一个客户端的应用用Actioscript写成,编译成SWF文件。服务器端的应用用server-side

Actionscript写成(类似ActionScript1.0,运行在服务器)。一个多媒体应用通常有一些录制的或是实时的音频,视频,从客户端流到服务器,从服务器流到客户端,或是从服务器到服务器。一个典型的FMS应用有以下几部分:

客户端用户界面

客户端actionscript脚本

视频,音频文件

摄像头和麦克风:可以通过flash media live encoder 来使食品和音频流向服务器,也可以开发自己的客户端来捕获视频音频。

服务器端得actionscript脚本

设置开发环境

flash/flex+flash media server(developer edition)

说说这个版本问题:去adobe下载FMS,你会发现三个版本,一个是Flash Media Interactive Server,这是功能最齐全的版本,也是最贵的版本。Flash Media Development Server,这是免费的版本,基本上Flash Media Interactive Server有的它都有,但是最大连接数目有限制。Flash Media Streaming Server,这好像是阉割完的Flash Media Interactive Server版本,功能有很多的限制,学习的话最好不要用这个版本,当然也用不了,这也是要钱的版本。

下载完了就安装吧!里面有个让你选择是否安装appache的选项,最好选了,否则可能会遇到一些麻烦。

如果出现问题可以查看下面两个方面:1,控制面板->管理员工具->服务,查看与FMS相关的服务是否全部打开。2,在安装目录下有个log文件夹,里面有个master.xx.log

文件 和 core.xx.log 文件显示失败的记录。edge.xx.log里面写了那个端口在监听。

创建一个hello world 的例子

这个例子很简单,链接到FMS,然后FMS返回字符串。

第一步:创建用户界面,很简单,一个按钮按下去就会连接到FMS,一个文本框,用来显示连接信息。

y="50"/>

第二步:写客户端的的actionscript代码

import

flash.net.NetConnection;

import flash.net.Responder;

import

flash.events.MouseEvent;

private var nc:NetConnection;

private var

myResponder:Responder=new Responder(onReply);

public function

init():void{

tt.text="";

conBt.label="connect";

conBt.addEventListener(MouseEvent.CLICK,clickHandler);

}

public

function

clickHandler(event:MouseEvent):void{

if(conBt.label=="connect"){

trace("Connecting...");

nc=new

NetConnection();

nc.connect("rtmp://localhost/HelloWorld");

nc.call("serverHelloMsg",

myResponder, "World");

conBt.label="disconnect";

}

}

public function

onReply(result:Object):void{

trace("onReply received value: " +

result);

tt.text = String(result);

}

]]>

第三步:编写服务器断的actionscript代码

application.onConnect = function( client )

{

client.serverHelloMsg = function( helloStr ) {

return "Hello, " +

helloStr + "!";

}

application.acceptConnection( client );

}

在flash media

server的安装目录下有一个application的文件夹,在里面新建一个HelloWorld的文件夹,在这个文件夹里新建一个文本文档,把上面的代码拷进去,保存,名字为:HelloWorld.asc。注意后缀名为asc。

好,三步完成了就可以测试了,如果成功的话,按钮按下去就会出现hello,world!的字样。如果不成功,先看看是否开启了fms,在开始菜单里的flash

media server3.5里有一个start abobe flash media server3.5和一个start flash media

administrator

server3.5,确定启动了。还可以去管理员工具的services里的两个有关FMS的服务是否已经启动。如果服务都启动了还不成功,就去看看你的版本,只有development版和Interactive版才能在application文件夹里自己建立文件夹,Streaming版本不可以。这样就应该可以了,上述代码我测试过,没问题。看别的教程,说要把vod文件夹(application)里的四个文件拷到新建的文件夹(这个例子是HelloWorld文件夹),其实没这个必要。

第一课先到这里 O(∩_∩)O~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值