RSS
热门关键字:  FMS视频聊天  会议  视频  cs3 johnny 创业路
当前位置 :| 主页>了解FMS>

初识FMS(Flash Media Server)

来源:sunneon 作者:sunneon 时间:2008-08-21 Tag: 点击:

近期由于项目的需要,第一次接触FMS,今天花了一些时间了解了一下它,顺便做了一个超简单的聊天室当作练习。
我把它写一下,方便更多的初学者练习。测试环境:
客户端:FLASH CS3
服务器:Flash Media Server 3

首先,新建FLA文档chat.fla,我们先布置一下舞台,打开组建面板,分别向舞台托出:
TextInput 实例名:userName 作用:登陆名输入框
Button 实例名:loadBt 作用:登陆
TextArea 实例名:chatMessage 作用:显示聊天消息
TextInput 实例名:sendMessage 作用:书写聊天消息
Button 实例名:sendBt 作用:发表聊天消息

客户端程序,chat.fla的文档类Chat.as:

package {
import flash.display.MovieClip;
import flash.net.ObjectEncoding;
import flash.net.NetConnection;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.NetStatusEvent;

public class Chat extends MovieClip {
private var nc:NetConnection;
public function Chat() {
addEL();
}
//监听器的添加
private function addEL():void {
loadBt.addEventListener(MouseEvent.CLICK,signIn);
sendBt.addEventListener(MouseEvent.CLICK,sendMess);
this.addEventListener(Event.ADDED_TO_STAGE,swfInit);
}
//舞台状态初始化处理
private function swfInit(eve:Event):void {
sendBt.enabled=false;
}
private function signIn(eve:MouseEvent):void {
nc=new NetConnection();
nc.objectEncoding=ObjectEncoding.AMF3;
nc.connect("rtmp://localhost/chat",userName.text);
nc.addEventListener(NetStatusEvent.NET_STATUS,netStatusEventHandle);

}
private function sendMess(eve:MouseEvent):void {
if (sendMessage.text) {
nc.call("SendMessage",null,sendMessage.text);
sendMessage.text="";
}
}
//NetConnection连接状态监测
private function netStatusEventHandle(eve:NetStatusEvent):void {
if (eve.info.code == "NetConnection.Connect.Success") {
var myObj:Object=new Object();
myObj.addMessage=addMessage;
nc.client=myObj;
loadBt.enabled=false;
sendBt.enabled=true;
}
}
//更新聊天显示窗口的消息
private function addMessage(m:String):void {
chatMessage.htmlText+=m;
}

}
}

其次在服务器端新建chat应用程序,由于我们在本机测试,所以应用程序在Flash Media Server的安装根目录里applications下,我们在applications下建立一个chat文件夹,然后在chat文件夹里新建文件 main.asc,main.asc即为FLASH AS 通讯文件,处理服务器端的行为,main.asc程序:

application.onConnect = function(client, userName) {
application.acceptConnection(client);
client.UserName=userName
//新进成员信息
wellcome="新进成员:<font color=\"#ff0000\"><b>"+client.UserName+": </b></font>欢迎你!!<br>";
//向所有终端发送信息
application.broadcastMsg("addMessage",wellcome)
//接收客户端传来的信息
client.SendMessage = function(chatmsg) {
chatString = "<font color=\"#ff0000\"><b>"+client.UserName+": </b></font>"+chatmsg+"<br>";
//同上
application.broadcastMsg("addMessage",chatString)
};

};
application.onDisconnect = function(client) {
//成员离开信息
wellcome="成员:<font color=\"#ff0000\"><b>"+client.UserName+": </b></font>离开聊天室<br>";
application.broadcastMsg("addMessage",wellcome)
};

由于时间比较紧迫,我只能把程序贴出来了,没有讲解,有哪里不明白的可以查询一下开发文档,还可以给我留言询问。
另附上所有源文件,到我的BOX里下载,地址:http://public.box.net/tyust


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册