• 【设为首页】
  • 【收藏闪客居】
当前位置:主页>FLASH AS 编程>FMS>文章内容
  • Flash Media Server 起步 (5)连接的一些细节

  • 来源:N神AS研究所 作者:N神 2007-11-05 【


我们已经看过怎样跟服务器建立连接了
现在我们深入一点点。。看看有些细节问题

info.code:

连接后info.code会告诉你连接的状态,以前看的都是NetConnection.Connect.Success, 还有一些其他值,和这些值是什么意思,自己看看。

值得注意的是。NetConnection.Connect.Rejected,收到这条消息的时候说明服务器端拒绝了你,接着马上你会收到另一条,NetConnection.Connect.Closed,连接就关闭了~~~
mync = new NetConnection();
mync.onStatus = function(info) {
  switch (info.code) {
  case "NetConnection.Connect.Success" :
    trace("连接成功");
    break;
  case "NetConnection.Connect.Failed" :
    //关掉服务器的情况
    trace("连接失败,请检查你的网络");
    break;
  case "NetConnection.Connect.Rejected" :
    //注意这里,服务器拒绝你的情况,如果遭到拒绝,将会调用两次mync.onStatus,
    //第一次"NetConnection.Connect.Rejected"第2次"NetConnection.Connect.Closed"
    trace("遭到服务器拒绝");
    trace("服务器返回信息:"+info.application.msg);
    break;
  case "NetConnection.Connect.Closed" :
    trace("连接关闭");
    break;
  }
};
mync.connect("rtmp://localhost/connect", "N神");
//mync.connect("rtmp://localhost/connect","小新")

服务器端拒绝连接?好象见过。。。回头找找。。。。。。。。哦在这里
application.onConnect = function(client) {

this.rejectConnection(client);

}

我不能所有人都拒绝了。。我要把讨厌的人拒绝了。。。
传给服务器一个人名~~

mync.connect("rtmp://localhost/connect", "N神");

服务器看看是不是讨厌的人。。
application.onConnect = function(client, name) {
  trace(name);
  if (name == "N神") {
    //拒绝连接,并返回个错误对象{msg:"服务器不想"+name+"进去,哈哈~"},包含错误消息
    application.rejectConnection(client, {msg:"服务器不想"+name+"进去,哈哈~"});
  } else {
    application.acceptConnection(client);
    //成功不能返回客户端信息
  }
};

看最上边的代码。。
 case "NetConnection.Connect.Rejected" :
 //注意这里,服务器拒绝你的情况,如果遭到拒绝,将会调用两次mync.onStatus,
 //第一次"NetConnection.Connect.Rejected"第2次"NetConnection.Connect.Closed"
 trace("遭到服务器拒绝");
 trace("服务器返回信息:"+info.application.msg);
 break;
遭到服务器拒绝后会trace出服务器返回的错误消息
=======================================

还有一些代码。是在一本电子书上学到的。。。传上来看看
//test2 ,拒绝多余的回调信息
mync = new NetConnection();
mync.onStatus = function(info) {
  if (info.code == "NetConnection.Connect.Success") {
    trace("连接成功");
    this.handleCloseEvents = true;
  }
  if (!this.isConnected && this.handleCloseEvents) {
    this.handleCloseEvents = false;
    if (info.code == "NetConnection.Connect.Rejected") {
      trace("遭到服务器拒绝");
    } else {
      trace("连接关闭");
    }
  }
};
mync.handleCloseEvents = true;
mync.connect("rtmp://localhost/connect", "N神");
//mync.connect("rtmp://localhost/connect","小新")
//test3 ,连接时显示正在连接,检查是否uri错误
mync = new NetConnection();
mync.onStatus = function(info) {
  if (info.code == "NetConnection.Connect.Success") {
    trace("连接成功");
    this.handleCloseEvents = true;
  }
  if (!this.isConnected && this.handleCloseEvents) {
    this.handleCloseEvents = false;
    if (info.code == "NetConnection.Connect.Rejected") {
      trace("遭到服务器拒绝");
    } else {
      trace("连接关闭");
    }
  }
};
mync.handleCloseEvents = true;
//uri="rtmp://localhost/connect"
uri = "rtmp2://localhost/connect";
//错误的uri
if (mync.connect(uri, "N神")) {
  trace("尝试连接服务器中。。");
} else {
  trace("没有尝试连接服务器~是uri错误???");
}
//mync.connect("rtmp://localhost/connect","小新")

onStatus都有什么,看清楚~~~
// onStatus( ) handler.
NetConnection.prototype.onStatus = function (info) {
 trace("this.isConnected: " + this.isConnected);
 trace(" info.level: " + info.level);
 trace(" info.code: " + info.code);
 trace("info.description: " + info.description);
 if (info.application) {
 for (var prop in info.application) {
 trace("info.application." + prop + ": " + info.application[prop]);
 }
 }
 trace("\n");
};



上一篇:Flash Media Server 起步 (4)视频,流   下一篇:Flash Media Server 起步 (6)写个简单的聊天室
  • 用户名:新注册) 密码: 匿名评论
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)

Copyright © 2006-2008 flashas.net All Rights Reserved.
网站内容咨询: admin#flashas.net (#为@) 联系QQ:40777822 浙ICP备06033001号
(本网站最佳浏览解析度为1024*768, 建议使用IE 6.0或以上版本浏览器。)