- 浏览: 1454029 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (564)
- 算法 (7)
- 流金岁月 (1)
- Javascript (30)
- actionscript (108)
- as3.0 game (14)
- flex (84)
- fms2 (27)
- 正则表达式 (7)
- 开源组件代码(as3.0) (1)
- Pv3d (13)
- Cairngorm (4)
- vbs (54)
- VB程序设计 (26)
- 计算机应用与维护 (4)
- 职场实用穿衣技巧 (3)
- 历史风云 (15)
- 淡泊明志,宁静致远 (12)
- 情感 (26)
- 杂谈 (41)
- 越南风 (14)
- DirectX (9)
- Dev-cpp (11)
- 回望百年 (2)
- 建站经验 (2)
- Python (24)
- 网络赚钱 (4)
- php (2)
- html (1)
- ob0短址网 (1)
- ob0.cn (1)
- wordpress (1)
- pandas logistic (1)
- haxe (1)
- opencv (1)
- 微信小程序 (3)
- vue (3)
- Flutter (1)
最新评论
-
GGGGeek:
第一个函数滚动监听不起作用,onPageScroll可以
微信小程序--搜索框滚动到顶部时悬浮 -
naomibyron:
解决办法:工具 -> 编译选项 -> 编译器 ...
dev-c++中编译含WINSOCK的代码出现错误的解决方法 -
haichuan11:
这个…… 代码不全真的是让人很憋屈的感觉啊
actionScript 3.0 图片裁剪及旋转 -
chenyw101:
老兄能留个QQ号吗?具体的我有些东西想请教下你
用VB制作网站登陆器 -
yantao1943:
貌似有点问题,只派发一次事件啊
使用ActionScript 2.0或ActionScript 3.0处理音频文件的提示点(cue
学习flashcom+学习英语(烂到死),无任何目的,本篇仅供闪吧和本人使用,不得转载,谢谢合作!哪里有错,或惹到谁了,还请指出谢谢^^
控制连接
Taking Control of Connections
author: Kristopher Schultz
一旦你创建使用Macromedia Flash Communication Server MX的应用程序,你也许要决定控制一下所有连
到你的程序的请求是否可能接收.这篇文章,我将展示两种普通的控制连接方法:限制连接和密码保护.
限制连接:
如果你运行超过一个flash communication server的程序,早晚你会需要限制一下连接每一个应用程序的
数量,尤其是你的程序在流行后.毕竟,你不想让你的多用户水球游戏(multiuser water balloon game)无法进行,因为你的虚拟数据程序占用了全部的服务器连接.我的处方就是对所有的通信程序作限制连接.
让我们开始,看一看当flash文件连接到flashcom server的时候到底发生了什么.除非另外指出,flashcom
server总是接收客户端发出的连接请求直到再没有更多的线路提供.如果你想改变这个行为,你需要设
定一些服务的规则,在当决定是否应该允许或者拒绝连接的时候使用.写一些服务器端的AS来达到这个任务.
设想你不想超过5个用户在同一时间连接到你的程序.在你选择的文本编辑器中创建一个新文本,并保存为
main.asc.这个main.asc文件允许你为你的通信程序增加新的能力.把下面的代码加进去:
application.onConnect = function ( pClient ) {
if ( application.clients.length >= 5 ) {
application.rejectConnection(pClient);
} else {
application.acceptConnection(pClient);
}
这里将逐行解释,他们到底在干什么
application.onConnect = function ( pClient ) {
...
Application.onConnect是一个事件,在任何时候只要一个客户端对服务器发出临时性的连接即被触发.对
于这点,服务器必须决定是否允许这个连接继续或者拒绝关闭这个连接.为这个事件创建一个函数是一个简
便的方法,它让你的服务器在发生此情况的时候执行一些规则.
每一个程序实例都有一个数组叫"clients",它包含引用了每一个被接收连接到程序的客户端.检查这个数
组的length属性,告诉你当前连接的客户端数量.通过这个数值和你选择的数值比较,你可以设置一个极限
来执行上述的代码.这里,你检测是否超过5个客户端被连接.建议 由于连接请求会触发onConnect事件也不
是正式被认可的,不会把这样的(译者:发出请求的)客户端计入clients数组,即使它占据服务器的可用连接
,也只是临时的
这个代码当在连接数超过极限5时被执行.首先它会通过pClient发送一个状态代码给客户端简要说明一下,
好像这样 : "NetConnection.Connect.Rejected" 然后立即关闭临时连接.注意到前面的状态代码,等下就会看到.
} else {
application.acceptConnection(pClient);
这句代码当连接数在5个以下时被实行.它只不过是允许连接继续并且跟着放松一个状态代码给客户端 :
这些就是所有在main.asc文件中的代码.把这个文件放入你程序的flashcom sever目录中.main.asc的内容
只是在当程序第一次启动时被引用,所以如果一个你的程序实例已经在服务器上运行,就重启它.
此时,你已经为服务器在允许连接时提供了一个有力的决定,让我们在客户端提供一个方法来响应一下服务
器的决定.
在你的flash文件中写下下面的函数来操作制作一个对服务器的连接.把这个函数放到你影片的第一帧,确
保你在使用它时被用到:
function doConnect () {
vConn_nc = new NetConnection();
vConn_nc.connect("rtmp://yourflashcomserver.com/yourApp");
vConn_nc.onStatus = function ( pInfo ) {
if ( pInfo.code == "NetConnection.Connect.Success" ) {
gotoAndPlay("Start");
} else if ( pInfo.code == "NetConnection.Connect.Failed" ||
pInfo.code == "NetConnection.Connect.Rejected" )
{
gotoAndPlay("Access Denied");
}
}
这里还是逐行解释.
vConn_nc = new NetConnection();
当函数被调用时,一个新的NetConnection对象被创建,并且尝试着去连接你的应用程序.
vConn_nc.onStatus = function ( pInfo ) {
是一个事件,在任何时候连接状态发生变化时被触发.通过建立一个函数并贴上这
个事件,你的客户端文件就可以对这些变化其反应.尤其是.它能反应来自服务器决定接收或者拒绝连接结
果的消息.这个由服务器提供的信息会传递到这个函数,就像一个特殊的信息对象,它就是你已经在用pInfo
参数时看到过的那个
if ( pInfo.code == "NetConnection.Connect.Success" ) {
如果对象pInfo的属性code显示成功连接,此客户端文件就跳到主场经中帧标签为"Start"的帧,用户可以在你的程序上开始工作.
} Else if ( pInfo.code == "NetConnection.Connect.Failed" || pInfo.code == "NetConnection.Connect.Rejected" ) {
这里你会对两种不同的可能作出反应.像我早前提起那样,如果服务器达到连接的极限,任何尝试连接将马上失败,并且客户端将看到"NetConnection.Connect.Failed"状态代码.如果服务器仍然有可用的连接,但是你的程序已经达到连接极限,比如像你定义的main.asc文件那样,那么此客户将接收到"NetConnection.Connect.Rejected"的状态代码.这里任何一种情况,客户端文件跳到主场经中帧标签为"Access Denied"的帧,在这帧,你应该提供一个信息解释一下,连接已经达到最大的用户数,并让访问者稍后再试.
密码保护.
密码保护
除了一次性控制多少人使用你的应用程序外,你还可以偶尔控制"谁"来使用你的程序.一个简单的办法来完成这项工作就是在用户允许连接前询问他们密码.让我们看看怎么来修改这个你已经创建好了的连接控制代码来检测密码.
从改变你的flash文件中的doConnect()函数开始.修改的部分用粗体显示:
function doConnect ( pPassword ) {
vConn_nc = new NetConnection();
vConn_nc.connect("rtmp://yourflashcomserver.com/yourApp", pPassword);
vConn_nc.onStatus = function ( pInfo ) {
if ( pInfo.code == "NetConnection.Connect.Success" ) {
gotoAndPlay("Start");
} else if ( pInfo.code == "NetConnection.Connect.Failed" ||
pInfo.code == "NetConnection.Connect.Rejected" )
{
if ( pInfo.application.message == "wrong password" ) {
gotoAndPlay("Wrong Password");
} else {
gotoAndPlay("No Connections");
}
}
}
我们还是逐行看看修改的部分:
function doConnect ( pPassword ) {
vConn_nc = new NetConnection();
我们修改了这个函数使你可以传递一个密码字符作参数.这个参数叫pPassword.在你的影片中,你必须提供用户一个密码输入文本,当触发这个函数时使用这个文本内容作为密码.密码通过传递参数连接请求,发送到服务器.
vConn_nc.onStatus = function ( pInfo ) {
if ( pInfo.code == "NetConnection.Connect.Success" ) {
gotoAndPlay("Start");
} else if ( pInfo.code == "NetConnection.Connect.Failed" ||
pInfo.code == "NetConnection.Connect.Rejected" )
{
if ( pInfo.application.message == "wrong password" ) {
gotoAndPlay("Wrong Password");
} else {
gotoAndPlay("No Connections");
}
}
象前面一样你仍然检测到一个成功连接.但是这次当客户接收到一个"Failed"或"Rejected"状态代码时,你必须测定是否这个失败是由于缺乏可用的连接数,还是因为用户的密码错误.
完成它,需要通过检测一个发送来自服务器的在application参数对象pInfo中自定义的消息.如果这个消息是"wrong password",跳到主场景帧标签为"Wrong Password"的帧通知用户密码错误.另一方面,你可以采取连接失败是由于缺乏可用连接数.这种情况跳到主场景帧标签为"No Connections"的帧
但是怎么让服务器放松一个象"wrong password"那样自定义的消息呢?在你的main.asc文件,修改一下粗体显示的部分:
application.onConnect = function ( pClient, pPassword ) {
if ( application.clients.length > 5 ) {
application.rejectConnection(pClient);
} else if ( pPassword != "abc123" ) {
var vError = new Object();
vError.message = "wrong password";
application.rejectConnection(pClient, vError);
} else {
application.acceptConnection(pClient);
}
我们来看看完成的修改部分
在开始的函数中定义了你已经增加的参数pPassword,这样你可以使用客户端文件在试图连接时将被发送的密码字符.
If ( application.clients.length > 5 ) {
就象前面一样,在超过连接极限时立即拒绝连接
} Else if ( pPassword != "abc123" ) {
var vError = new Object();
vError.message = "wrong password";
这段代码决定了你的密码在哪里被检测.如果用户的密码不匹配你所看到的情况-"abc123"-你必须拒绝此连接.除了简单的决定连接外,你还想提供一个自定义的消息,让客户知道拒绝是由于输入了错误的密码.通过创建一个对象,叫vError.给这个对象增加一个参数叫message,并赋值"wrong password".通过增加一个vError对象作rejectConnection()调用时的第二个参数,它将被返回到客户端,并由你之前写好的客户端代码解释
} Else {
acceptConnection(pClient);
最后,如果连接通过了连接限制和密码检测,就会允许连接继续.
这些就是服务端和客户端的代码,你已经得到了两个简例,有力的控制连接到你应用程序的连接数!
关于:
原文地址 : http://www.macromedia.com/devnet/mx/flashcom/articles/connections.html
发表评论
-
AMF3 + AS 3.0 + ASP.NET 完整配置过程及源文件
2008-09-11 16:04 3584AMF3 + AS 3.0 + ASP.NET 完整配置过程及 ... -
FLEX结合FMS制作在线视频认证
2008-09-09 14:24 3838很多交友网站都具体在线视频认证能,如51.com。参考它的认 ... -
flex 3 + .net开发flash Remoting四[完整代码
2008-08-28 16:11 2216一. 相关说明: 本篇将呈现完整的Flash Remot ... -
FMS Client AS 自訂類別物件傳遞
2008-08-27 15:04 1061透過與 FMS 連線,可以共享 SharedObject 物件 ... -
FMS 常常会用到 3个Call 和3个Send
2008-08-27 14:51 2199FMS 常常会用到 3个Call 和3个Send 关于Flas ... -
flex as3 fms相关的资料(转)
2008-08-27 14:36 1705FMS.rar FMS系列教程http://www.fs2 ... -
视频类
2008-08-27 09:21 1862Flash Player作为流媒体的表现形式之一,视频编码是其 ... -
一步一步学Flash Media Server
2008-08-26 18:03 4361从今天起,我们来学习一下 Flash Media Server ... -
再说说onSync,SharedObject
2008-08-26 16:44 1607* 最多人不懂的就是:那个list参数看代码: my_rso ... -
视频监控软件(2)---异步录像
2008-08-26 16:10 1388不好意思,让大家久等了!今天我要实现的一个功能是异步录像!先讲 ... -
视频监控软件(1)---FMS视频流共享
2008-08-26 16:07 2722呵呵!临近毕业了,本人选择的毕业设计题目是(基于B/S模式的 ... -
flash fms WebService 交互过程
2008-08-26 16:01 1736//flash客户端call服务器端的方法,服务器端调用WS的 ... -
游戏开发常用FMS类
2008-08-26 15:51 1459游戏开发常用FMS类 ... -
FLEX提高篇--------ShareObject对象详解
2008-08-26 14:23 1129ShareObject,顾名思义共享对象,而通常意义上的共享, ... -
客户端呼叫Flash Medis Server3服务端入门
2008-08-26 14:02 1476当你不仅仅只想用FLEX来做纯业务数据的管理时,或者当你的项目 ... -
FMS两种方式实现简易聊天室
2008-08-26 14:01 1691原理和代码都很简单,没什么好说的. 一:利用ShareOb ... -
FLEX提高篇---------FMS简易聊天室加强版
2008-08-26 13:37 1838今天写了下简易聊天室的加强版 , 其实功能也十分有很 , 不过 ... -
Flex连接FMS实现用户列表(使用SharedObject)
2008-08-26 13:33 39921.先在FMS的安装目录中添加自己的应用(例如我的目录D:\M ... -
FMS 教程(SharedObject)用户列表
2008-08-26 13:32 2940FMS实现用户列表,一般都是利用List组件,和SharedO ... -
Fms教程7 理解共享对象
2008-08-26 13:13 1926理解共享对象 共享对象 ...
相关推荐
标题中的“FlashCom检查摄像头与麦克风”是一个可能的软件或技术工具,它专注于测试和验证用户的摄像头和麦克风功能。在IT领域,这通常涉及到多媒体通信、远程协作或者在线会议应用,这些都需要用户设备上的摄像头和...
然而,有时我们可能需要在WPF应用中集成旧的或者基于特定技术的组件,比如Flash,它在Web上广泛用于创建动态内容和交互式体验。 标题所提及的"一个用WPF实现FLASHCOM组件的源码",意味着这个项目或资源包含了一个...
3. **安全连接**:该工具支持SSL/TLS加密,确保在上传过程中数据的安全性,防止敏感信息在传输过程中被截取。 4. **断点续传**:如果上传过程中因网络问题中断,FlashFTP可以自动记住上传进度,在网络恢复后继续未...
HTTP代理服务器,通过它的所有HTTP代理连接协议都可以查看和分析,用于分析HTTP协议和数据的好工具,支持HTTPS协议,但没法查看真实内容 帮助请看 http://blog.csdn.net/flashcom/article/details/6894639
2. 驱动程序的安装通常包括一个主执行文件(如FLASHCOM.EXE)和必要的配置文件(如INF和INI文件)。 3. 用户可能会在非官方渠道找到这些驱动,比如通过论坛或社区分享,可能需要花费一定的积分或资源来获取。 4. ...
- **FlashCom Guru Stefan Richter**:“终于有一本书从头开始介绍Flex组件的开发了。即使我已经使用Flex几年了,但对于组件开发的理解仍然不够充分,更不用说它们的样式化、打包和分发了。感谢Mike的这本书,它来得...
Fabio Sonnati 发布了一份重要的视频文件格式详细研究报告,它与Flash视频有紧密的联系。在技术白皮书当中,他介绍了两种视频优化的技术方法,它能成功的将Flash...总之,这项白皮书主要是关于FlashCom编码器专项讨论。