·您当前的位置:首页 > 技术教程 > Rtmp技术 >

[RTMP]FMS在应用安全方面的限制和保护源代码实例(3)

时间:2013-02-20 11:24cnblogs.com
象前面一样你仍然检测到一个成功连接.但是这次当客户接收到一个Failed或Rejected状态代码时,你必须测定是否这个失败是由于缺乏可用的连接数,还是因为用户的密码错误. 完 成它,需要通过检测一个发送来自服务器的在ap

象前面一样你仍然检测到一个成功连接.但是这次当客户接收到一个“Failed”或“Rejected”状态代码时,你必须测定是否这个失败是由于缺乏可用的连接数,还是因为用户的密码错误.
完 成它,需要通过检测一个发送来自服务器的在application参数对象pInfo中自定义的消息.如果这个消息是“wrong password“,跳到主场景帧标签为“Wrong Password”的帧通知用户密码错误.另一方面,你可以采取连接失败是由于缺乏可用连接数.这种情况跳到主场景帧标签为“No Connections”的帧, 但是怎么让服务器放松一个象“wrong password”那样自定义的消息呢?在你的main.asc文件,修改一下粗体显示的部分:

  1. application.onConnect = function ( pClient, pPassword ) { 
  2. if ( application.clients.length > 5 ) { 
  3. application.rejectConnection(pClient); 
  4. } else if ( pPassword != “abc123″ ) { 
  5. var vError = new Object(); 
  6. vError.message = “wrong password”; 
  7. application.rejectConnection(pClient, vError); 
  8. } else { 
  9. 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);
}
最后,如果连接通过了连接限制和密码检测,就会允许连接继续.
这些就是服务端和客户端的代码,你已经得到了两个简例,有力的控制连接到你应用程序的连接数!

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器