[FMS]FMS流媒体环境applicaton.onConnect事件的用法
刚刚开始正式开发一个FMS项目了,好多东西要试验,调试,发现....也许以后看这些学习笔记会觉得可笑,可能会错漏百出..不过不管正确与否.发上来吧.也许可以让和我一样遇到这样问题的初学者少走我走过的弯路吧~
昨天把client连接到服务器后的事件处理想复杂了.原来还担心加载外部数据不同步和同时联边用户太多的话会不会造成client管理的混淆.看来是太多余了.
关于FMS的服务端的client对象的处理机制今天仔细做了下试验.发现,当一个client联接到application实例时,系统是分配给这个client一个唯一ID值的.而且在运行事件application.onConnect()时,在这里边如果写加载对象XML或LoadVars,这些对象对是针对这个client的,不用担心在XML或LoadVars对象在加载数据中异步而造成client管理混乱的事情发生.我现在这样理解,当一个client连接到application实例时,系统给这个client一块地,client在这块地里做的事不会影响到别的client.
证明这个试验的代码:
- function getEach(obj){
- trace("遍历对象:")
- for(o in obj){
- trace(o+" = "+obj[o])
- }
- }
- lvArr=new Array()
- cArr=new Array()
- application.onConnect = function(clientObj, userName, PSW, userType,conID) {
- trace("登陆中>>"+userType+" "+userName+"\r");
- //读取数据库
- var loadLV = new XML();
- trace("比对加载对象是否相等")
- lvArr.push(loadLV)
- for(l in lvArr){
- trace(loadLV+" \r")
- trace(loadLV==lvArr[l]+" "+l)
- }
- cArr.push(clientObj)
- trace("客户端对象是否相等")
- for(c in cArr){
- trace(clientObj==cArr[c])
- }
- //loadLV.conID=conID
- clientObj.conID=conID
- loadLV.onLoad = function(suc) {
- /////////////////////////////////////////////////////////////////
- if (suc) {
- trace("成功.")
- getEach(this.firstChild.attributes)
- if(clientObj.conID==0){
- application.rejectConnection(clientObj)
- }else{
- application.acceptConnection(clientObj)
- }
- }else{
- trace("加载失败,")
- application.rejectConnection(clientObj)
- }
- trace(this.conID+" LV?=client "+clientObj.conID)
- };
- //检测用户?userName=5945&PSW=5945
- var pStr = "?userName="+userName+"&PSW="+PSW+"&userType="+userType+"&conID="+conID;
- var loadingURL = "http://dxxd.web160.hezuwang.net/temp/toFMS.asp"+pStr;
- //var loadingURL = "http://localhost/iletaoMusic/ASP/toFMS.asp"+pStr;
- loadLV.sendAndLoad(loadingURL, loadLV, "post");
- getEach(loadLV)
- getEach(clientObj)
- };
通过加载成功后参数对比是相同的.
也就是说,application.onConnect被触发时,是为每一个client生成了一个独立的运行空间.在这个事件里处理和生成的对象也是独立在这个事件处理函数里的.并不会混淆.包括从远程加载回的数据.也不会返回到混淆的地方去.昨天的担心是多余的.
热门文章推荐
- [FMS]Adobe FMS产品(Adobe Flash Media Server)使用介绍(组图)
- [FMS]Flash Media Server之教程附示例代码
- [RTMP]国产RTMP/HLS直播服务器simple-rtmp-server
- [WOWZA]用wowza流媒体服务器发布和播放直播流(RTMP)
- [RTMP]又一款rtmp类的服务器openrtmfp流媒体服务器
- [RTMP]adobe之FMS视频直播解决方案流程介绍(组图)
- [RTMP协议]实时消息传输协议 (RTMP) 常识性介绍
- [FMS]Adobe的Flash Media Server服务器(FMS服务器)安装