您好,欢迎来到我要学flash网!登录注册

Flash Media Server 起步(5)连接的一些细节

来源:我要学flash网 | 作者:admin | 发表时间:2011-07-12 | 点击:  次

ps.这一章没什么用,看了反到迷糊
我们已经看过怎样跟服务器建立连接了,忘了的回头看看。。http://www.nshen.net/blog/article.asp?id=394
现在我们深入一点点。。看看有些细节问题

info.code:

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

值得注意的是。NetConnection.Connect.Rejected,收到这条消息的时候说明服务器端拒绝了你,接着马上你会收到另一条,NetConnection.Connect.Closed,连接就关闭了~~~
 

  1. mync = new NetConnection();  
  2. mync.onStatus = function(info) {  
  3.   switch (info.code) {  
  4.   case "NetConnection.Connect.Success" :  
  5.     trace("连接成功");  
  6.     break;  
  7.   case "NetConnection.Connect.Failed" :  
  8.     //关掉服务器的情况  
  9.     trace("连接失败,请检查你的网络");  
  10.     break;  
  11.   case "NetConnection.Connect.Rejected" :  
  12.     //注意这里,服务器拒绝你的情况,如果遭到拒绝,将会调用两次mync.onStatus,  
  13.     //第一次"NetConnection.Connect.Rejected"第2次"NetConnection.Connect.Closed"  
  14.     trace("遭到服务器拒绝");  
  15.     trace("服务器返回信息:"+info.application.msg);  
  16.     break;  
  17.   case "NetConnection.Connect.Closed" :  
  18.     trace("连接关闭");  
  19.     break;  
  20.   }  
  21. };  
  22. mync.connect("rtmp://localhost/connect""N神");  
  23. //mync.connect("rtmp://localhost/connect","小新")  


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

this.rejectConnection(client);

}

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

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

服务器看看是不是讨厌的人。。
 

  1. application.onConnect = function(client, name) {  
  2.   trace(name);  
  3.   if (name == "N神") {  
  4.     //拒绝连接,并返回个错误对象{msg:"服务器不想"+name+"进去,哈哈~"},包含错误消息  
  5.     application.rejectConnection(client, {msg:"服务器不想"+name+"进去,哈哈~"});  
  6.   } else {  
  7.     application.acceptConnection(client);  
  8.     //成功不能返回客户端信息  
  9.   }  
  10. };  


看最上边的代码。。

  1. case "NetConnection.Connect.Rejected" :  
  2. //注意这里,服务器拒绝你的情况,如果遭到拒绝,将会调用两次mync.onStatus,  
  3. //第一次"NetConnection.Connect.Rejected"第2次"NetConnection.Connect.Closed"  
  4. trace("遭到服务器拒绝");  
  5. trace("服务器返回信息:"+info.application.msg);  
  6. break;  

遭到服务器拒绝后会trace出服务器返回的错误消息
=======================================

还有一些代码。是在一本电子书上学到的。。。传上来看看
 

  1. //test2 ,拒绝多余的回调信息  
  2. mync = new NetConnection();  
  3. mync.onStatus = function(info) {  
  4.   if (info.code == "NetConnection.Connect.Success") {  
  5.     trace("连接成功");  
  6.     this.handleCloseEvents = true;  
  7.   }  
  8.   if (!this.isConnected && this.handleCloseEvents) {  
  9.     this.handleCloseEvents = false;  
  10.     if (info.code == "NetConnection.Connect.Rejected") {  
  11.       trace("遭到服务器拒绝");  
  12.     } else {  
  13.       trace("连接关闭");  
  14.     }  
  15.   }  
  16. };  
  17. mync.handleCloseEvents = true;  
  18. mync.connect("rtmp://localhost/connect""N神");  
  19. //mync.connect("rtmp://localhost/connect","小新")  
  20. //test3 ,连接时显示正在连接,检查是否uri错误  
  21. mync = new NetConnection();  
  22. mync.onStatus = function(info) {  
  23.   if (info.code == "NetConnection.Connect.Success") {  
  24.     trace("连接成功");  
  25.     this.handleCloseEvents = true;  
  26.   }  
  27.   if (!this.isConnected && this.handleCloseEvents) {  
  28.     this.handleCloseEvents = false;  
  29.     if (info.code == "NetConnection.Connect.Rejected") {  
  30.       trace("遭到服务器拒绝");  
  31.     } else {  
  32.       trace("连接关闭");  
  33.     }  
  34.   }  
  35. };  
  36. mync.handleCloseEvents = true;  
  37. //uri="rtmp://localhost/connect"  
  38. uri = "rtmp2://localhost/connect";  
  39. //错误的uri  
  40. if (mync.connect(uri, "N神")) {  
  41.   trace("尝试连接服务器中。。");  
  42. else {  
  43.   trace("没有尝试连接服务器~是uri错误???");  
  44. }  
  45. //mync.connect("rtmp://localhost/connect","小新")  


onStatus都有什么,看清楚~~~
 

  1. // onStatus( ) handler.  
  2. NetConnection.prototype.onStatus = function (info) {  
  3.  trace("this.isConnected: " + this.isConnected);  
  4.  trace(" info.level: " + info.level);  
  5.  trace(" info.code: " + info.code);  
  6.  trace("info.description: " + info.description);  
  7.  if (info.application) {  
  8.  for (var prop in info.application) {  
  9.  trace("info.application." + prop + ": " + info.application[prop]);  
  10.  }  
  11.  }  
  12.  trace("\n");  
  13. }; 

 

    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    本文引用地址:
      最新评论: 共有位网友发表了评论
      发表评论:
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    表情:
    用户名: 密码: 验证码: