flex client_server相互调用

  对象定义:

client端:

nc: NetConnection;

ns: NetStream;

so: SharedObject;

        server端:

client: Client;

sns: Stream;

sso: Server Side SharedObject;

2.       client调用server端:

client调用:

nc.connect;

nc.close;

nc.call(“myMethod”,resultObject, p1…pn );  // 第一个参数方法名,第二个返回对象,后面是函数的参数;

ns.send(“myMethod”, p1…pn); // 第一个是函数名,后面的传递给函数的参数;

server回应:

       application.onConnect;

       application.onDisconnect;

       client.myMethod(p1…pn);   // 这个client其实就是和客户端类同名的一个服

务器端的类,方法直接作为类的方法写入。写法:className.prototype.myMethod;或者是一个Client对象;

       sso.myMethod(p1…pn);

结果处理:

方法1:方法2:

       resultObject = function() {

              this.onResult = function(res) {

                     // res是返回的结果

              }

              this.onStatus = function(info) {

                     // info是错误对象,info.code是错误信息;

              }

       }

    ncObj.call(“fun”,  new resultObject(), p1,p2…);

方法2:

       var resultObject= new Object();

       resultObject.onResult = function(res) { ////  }

       resultObject.onStatus = function(res) { ////  }

       ncObj.call(“fun”,  resultObject, p1, p2…);

注意:这里的resultObject的定义一定要和call方法在同一级别,要不无法处理返回结果!

3.       server调用client端:

client回应:

       nc.myMethod(p1…pn);

       ns.myMethod(p1…pn);

       so. myMethod(p1…pn);

server调用:

       client.call(“myMethod”, resultObject, p1…pn);  // client是客户端Client对象,

这个参数可以在Application.onConnect等函数里面获取;

       sns.send(“myMethod”,p1…pn);

       sso.send(“myMethod”,p1…pn);

 

你可能感兴趣的:(Flex,prototype,SSO,SNS)