如何我可以发送类型对象从FMS到客户
我具有以下在FMS如何我可以发送类型对象从FMS到客户
用户=函数(用户名,用户id)对象
{
this.userName =用户名;
this.userId = userId;
}
我需要的用户列表发送到客户端瑞士法郎。一旦我将User对象集合初始化为一个数组,当我从客户端读取它时,数组元素是未定义的。
但是我无法发送通用对象。一旦我初始化对象中的数组元素如下。它也给客户端未定义。
var myObj = {userName:“user1name”,userId:“user1id”};
但是下面的作品
var arr2 = [];
arr2 [“userName”] =“user1name”; arr2 [“userId”] =“user1id”;
客户端连接到FMS上的主应用程序。然后通过NetConnection连接到第二个应用程序。我已经使用'registerProxy'功能映射了远程方法。
例如:application.registerProxy(localName,this._nc,remoteName);
上述第二种应用中的方法。我为客户端使用了Actionscript 2。
对此事的任何解决方案都非常感谢。
在此先感谢。
据我所知,没有办法将客户端类映射到服务器端FMS类。就我记忆中的旧时代而言,在AS2中这个功能根本不存在。
我试过你的例子与AS3。传递对象(尽管无类型)与FMS 3.5一起使用。
客户端:
private var nc:NetConnection;
private function init():void {
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
nc.connect("rtmp:/test");
}
private function netStatusHandler(event:NetStatusEvent):void {
trace(event.info.code);
if(event.info.code == "NetConnection.Connect.Success") {
var responder:Responder = new Responder(resultHandler);
nc.call("getUser", responder, "hrundik", 1234);
}
}
private function resultHandler(result:Object):void {
if(result)
trace(result.userName, result.userId);
}
服务器端:
User = function(userName,userId) {
this.userName = userName;
this.userId = userId;
}
application.onConnect = function (client) {
trace("client connected!");
client.getUser = function(userName, userId) {
return new User(userName, userId);
}
return true;
}
在AS2和AS3之间的差异可能是在对象编码协议的原因正在使用 - AMF0 VS AMF3。虽然AMF0在AS3中按预期工作。
因此,也许考虑将您的应用程序移植到AS3。
谢谢,但你给了我很好的提示:)在FMS服务器上的应用程序NetConnection中的问题。默认情况下,FMS 3使用AMF3序列化。由于我的客户端应用程序AS2,我已经更改了ObjectEncoding应用程序。xml on FMS
例如。 <ObjectEncoding>AMF0</ObjectEncoding>