[RTMP]FMS在应用安全方面的限制和保护源代码实例(3)
象前面一样你仍然检测到一个成功连接.但是这次当客户接收到一个“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);
- }
- }
我们来看看完成的修改部分
application.onConnect = function ( pClient, pPassword ) {
在开始的函数中定义了你已经增加的参数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);
这 段代码决定了你的密码在哪里被检测.如果用户的密码不匹配你所看到的情况-”abc123“-你必须拒绝此连接.除了简单的决定连接外,你还想提供一个自 定义的消息,让客户知道拒绝是由于输入了错误的密码.通过创建一个对象,叫vError.给这个对象增加一个参数叫message,并赋值“wrong password“.通过增加一个vError对象作rejectConnection()调用时的第二个参数,它将被返回到客户端,并由你之前写好的客 户端代码解释
} Else {
acceptConnection(pClient);
}
最后,如果连接通过了连接限制和密码检测,就会允许连接继续.
这些就是服务端和客户端的代码,你已经得到了两个简例,有力的控制连接到你应用程序的连接数!
热门文章推荐
- [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服务器)安装