asc文件中有2个重要的类
Client类:Client类让你处理连接到一个Flash Media Server应用程序实例的每一个用户或说client。
Application类有几个重要事件如下:
Application.onAppStart
当这个应用程序被服务器装载时调用。
Application.onAppStop
当这个应用程序被服务器卸载时调用。
Application.onConnect
当一个客户机连接到这个应用程序时调用。
Application.onDisconnect
当一个客户机从这个应用程序断开连接时调用。
Application类有几个重要方法如下:
Application.acceptConnection()
接受一个来自客户机的至一个应用程序的连接。
Application.broadcastMsg()
向所有连接的客户机广播一条消息。
Application.disconnect()
从服务器断开一个客户机的连接。
Application.rejectConnection()
拒绝至一个应用程序的连接。
Client类有1重要方法如下:
Client.call()
在Flash客户机上异步的执行一个方法,并把值从Flash客户机返回到服务器。
对方法的具体使用:
userList = [];
application.onAppStart = function() {
trace("fms服务器启动......");
};
application.onConnect = function(currentClient)
{
application.acceptConnection(currentClient);
if (userList.length>=3) {
currentClient.call("showServerMsg",null,"已经达到最大用户数");
application.rejectConnection(currentClient);
} else {
currentClient.communicateServer = function(value) {
currentClient.username = value;
trace(currentClient.username+"加入聊天室");
userList.push(value);
trace("当前用户列表"+userList);
application.broadcastMsg("playOtherVideo",userList);
};
}
};
application.onDisconnect =
function(currentClient) {
trace("用户"+currentClient.username+"离开聊天室");
for (j=0; j<userList.length; j++)
{
if (userList[j] ==
currentClient.username) {
userList.splice(j,1);
}
}
trace("当前用户列表"+userList);
application.broadcastMsg("playOtherVideo",userList);
};
代码说明:
(1)application.broadcastMsg
("客户端方法名",参数..);是asc中一个比较重要的方法,他的作用是向所有连接着的客户端进行广播,调用客户端的函数。这个方法相当于循环遍历Application.clients数组并在每一个独立的客户机上调用Client.call(),但这个方法的效率更高(尤其是当连接的客户机数量很大时)。唯一的不同是当你调用broadcastMsg()时你不能指定一个响应对象,除此以外,两种语法是一样的。
(2)userList.splice(a,b)这个函数,它的作用是从a位置开始移除数组中的b个元素(asc用的是as1语法)
(3)代码中做了限制,只允许最多3人连接fms