一步一步学Flash Media Server

从今天起,我们来学习一下 Flash Media Server,简称FMS,从名字上我们可以看出这是一个媒体服务器,其它简单点理解就是一个交互服务器,而且可以实现媒体方面的交互,我们可以利用它来完成一些网络版的FLASH程序,比如聊天室,网络版的不是很复杂的游戏,等等。

 

大家可以到如下地址下载最新的3.0版本:

http://www.adobe.com/products/flashmediainteractive/

 

当然这个版本是开发版,开发版和正式版的区别在于开发版只支持10个连接数,不过对于我们学习已经是足够了.

 

大家安装完之后,我们会在安装目录里看到applicationslogs这两个目录,这个是我们用的最多的两个目录,applications是我们放服务端程序的地方,logs是放日志文件的地方,日志文件对我们调试程序很有帮助.

 

大家也可以修改这两个文件的路径,当然要更改配置文件,conf目录里放的都是配置文件,我们打开fms.ini这个文件我们会找到

 

VHOST.APPSDIR =

LOGGER.LOGDIR =

这两项就是更改applicationslogs路径的地方,如比我们改成:

 

VHOST.APPSDIR = e: /fms/applications

LOGGER.LOGDIR = e:/fms/logs

 

那么我们就在e盘建立相应的目录把程序入在里面就可以了.

 

确定FMS的服务打开了,就可以运行了,FMS有两个服务,在安装完后在开始菜单我们可以找到Start Flash Media Administration Server 3 Start Adobe Flash Media Server 3 这两个打开服务的菜单,要打开服务点这两个就可以了,前一个是FMS管理服务,后一个是FMS服务,Stop Flash Media Administration Server 3Stop Adobe Flash Media Server 3就是关闭这个服务的,默认状态下,在电脑刚启动里,这两个服务就会启动,当然也可以在windows的服务里面来启动和关闭服务.

 

Flash Media Administration Console这个菜单项是打开管理后台,管理后台对我们调试程序是很有作用的,打开这个之后是一个登录界面,要求输入用户名密码和服务器地址,用户名和密码是我们在安装FMS就输入的,服务器地址就是我们要连的装有FMS的地址,我们连接本机就用localhost或者127.0.0.1就可以了,如果我们在安装的时候改了它的默认端口(1935)的话,我们在地址上还要加端口,如果没有改端口这里就不用加了,输入用户名密码和服务器地址,我们就可以进入管理界面了,具体如何操作,我们在后面会讲到.

 

整个教程,我会用一个聊天室的例子来讲解如何使用FMS,当然我只能讲出我所知道的知识,不能完全讲出FMS的强大的功能.

 

下节我们接触FMS基本的结构,下节继续.

 

 

 

 

 

 

今天我们来看一下FMS里面最重要的一个类---Application.

 

Application类包含了有关一个Flash Media Server应用程序实例的信息,这些信息会一直维持直至这个应

用程序实例被卸载.

 

先看一下在Application类中常用的方法:

 

Application.acceptConnection()      接受一个来自客户机的至一个应用程序的连接。

Application.disconnect()                  从服务器断开一个客户机的连接。

Application.rejectConnection()       拒绝至一个应用程序的连接。

Application.shutdown()                    卸载应用程序实例。

 

再看一下在Application类中常用的属性:

 

Application.clients      一个对象,该对象包含了当前连接到这个应用程序的所有客户的一个列表。

Application.name       一个应用程序实例的名字。

 

最后看一下在Application类中常用的事件:

 

Application.onAppStart              当这个应用程序被服务器装载时调用。

Application.onAppStop              当这个应用程序被服务器卸载时调用。

Application.onConnect              当一个客户机连接到这个应用程序时调用。

Application.onDisconnect        当一个客户机从这个应用程序断开连接时调用。

 

 

 

(这些是比较常用的,还有其它一些,大家可以看FMS自带的文档)

 

 

 

我们来描述一下客户机连接的流程:

 

 

 

1.当第一个用户连接的时候,会启动服务端应该程序实例,这样就会触发Application.onAppStart事件,通常我们会里这个事件里做一些初如化的事情.

 

2.用户连接的时候会触发Application.onConnect事件,在这个事件里我们可以用Application.acceptConnection()方法来接受这个用户的连接,也可以用Application.rejectConnection()方法拒绝这个用户.

 

3.服务器想把一个用户断开的时候,可以用Application.disconnect()方法,当一个用户断开,不管是服务器把它断开,还是客户端自己断开,都会触发Application.onDisconnect事件.

 

4.使用Application.shutdown()方法可以卸载应用程序实例,当这个应该程序长时间(大概半个小时左右)没有客户端连接的时候,应该程序也会被卸载,当应该程序卸载的时候会触发Application.onAppStop事件.

 

 

我们写FMS程序时,大多数都是这样的流程.

 

 

 

 

一步一步学Flash Media Server()

今天我们来看一下用AS 3连接FMS3的代码(这些代码其它对FMS2也是适用的).

 

这个例子我们不会去写FMS的代码,但我们需要建一个FMS应该程序,其实就是建一个目录,FMS放应该程序的目录(applications)里建一个文件夹,我们后面要做聊天室的例子,所以我们就建一个名叫chat的目录.

 

 

接下来就是客户端的代码了,我们建一个chat.flaFLASH文件,再建一个文档类Chat.as:

 

package net.smilecn.chat{

   

    import flash.display.Sprite;

   

    import flash.net.NetConnection;

   

    import flash.events.NetStatusEvent;

   

    public class Chat extends Sprite{

       

        private var nc:NetConnection;

        private var rtmpUrl:String = "rtmp://localhost/chat";

   

        public function Chat():void{

            nc=new NetConnection();

            nc.addEventListener (NetStatusEvent.NET_STATUS,netStatusHandler);

            nc.connect (rtmpUrl);

        }

       

        private function netStatusHandler(event:NetStatusEvent):void{

            trace(event.info.code);

        }

    }

   

}

这段代码里我们导入了一个NetConnection,这个类是FLASH里用于跟网络连接相关的操作,像我们连接FMS,remoting(我前面的一步一步学ActionScript 3[十六]里面有相关介绍).

 

NetStatusEvent是一个检测状态的事件

 

rtmpUrl是一个连接FMS的字符串,rtmpFMS用的一个网络协议,localhost是服务器的IP,这里我们是本机,所以是 localhost,如果放在网上,应该是你网上的IP,chat是应用程序名,就是之前我们建立的chat目录.这里我们完整的地址就 :rtmp://localhost/chat,其实如果是localhost,地址可以这样写:rtmpe:/localhost.

 

这个程序动行后会traceNetConnection.Connect.Success,这个信息表示的是我们连接FMS成功了.

 

这是一个连接状态,event.info.code就是这个状态,相关的状态还有:

 

NetConnection.Connect.Closed 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值