
//My client code passing the object is:
nc.call("updateObjectData",null, myObject);
//My server code on Red5 is:
public void updateObjectData(Object input)
{
ObjectType temp = new ObjectType ();
temp = (ObjectType) input; // temp returns of type ObjectType but all values inside are NULL
}
Any thoughts are much appreciated. I have scoured the internet for days looks for an answer to no avail. Most guides show how to go from server to client, but not the other way around.

public void updateObjectData(Object[] params)
{
boolean firstVaraible = (Boolean)params[0];
String secondVariable = (String)params[1];
}

// Java
package org.red5.core;
import org.red5.io.amf3.IExternalizable;
import org.red5.io.amf3.IDataInput;
import org.red5.io.amf3.IDataOutput;
public class LobbyType implements IExternalizable
{
public String redUser; // red5 username
public int uid; // fb uid
public String fname; // fb name
public String pic; // fb pic
public Boolean intbl; // is in the table?
public int t; // table number
public int s; // seat number
public LobbyType()
{
}
public void setRedUser(String redUser)
{
this.redUser = redUser;
}
public String getRedUser()
{
return redUser;
}
public void setUid(int uid)
{
this.uid = uid;
}
public int getUid()
{
return uid;
}
public void setFname(String fname)
{
this.fname = fname;
}
public String getFname()
{
return fname;
}
public void setPic(String pic)
{
this.pic = pic;
}
public String getPic()
{
return pic;
}
public void setIntbl(Boolean intbl)
{
this.intbl = intbl;
}
public Boolean getIntbl()
{
return intbl;
}
public void setTable(int t)
{
this.t = t;
}
public int getTable()
{
return t;
}
public void setSeat(int s)
{
this.s = s;
}
public int getSeat()
{
return s;
}
public void readExternal(IDataInput input)
{
redUser = input.readUTF();
uid = input.readInt();
fname = input.readUTF();
pic = input.readUTF();
intbl = input.readBoolean();
t = input.readInt();
s = input.readInt();
}
public void writeExternal(IDataOutput output)
{
output.writeUTF(redUser);
output.writeInt(uid);
output.writeUTF(fname);
output.writeUTF(pic);
output.writeBoolean(intbl);
output.writeInt(t);
output.writeInt(s);
}
}
// AS 3
package
{
import flash.utils.IDataInput;
import flash.utils.IDataOutput;
import flash.utils.IExternalizable;
import flash.net.registerClassAlias;
public class LobbyType implements IExternalizable
{
public var redUser:String;// red5 username
public var uid:int;// fb uid
public var fname:String;// fb name
public var pic:String;// fb pic
public var intbl:Boolean;// is in the table?
public var t:int;// table number
public var s:int;// seat number
public function LobbyType():void
{
}
public function registerObject():void
{
registerClassAlias("org.red5.core.LobbyType", LobbyType);
}
public function setRedUser(redUser:String):void
{
this.redUser = redUser;
}
public function getRedUser():String
{
return redUser;
}
public function setUid(uid:int):void
{
this.uid = uid;
}
public function getUid():int
{
return uid;
}
public function setFname(fname:String):void
{
this.fname = fname;
}
public function getFname():String
{
return fname;
}
public function setPic(pic:String):void
{
this.pic = pic;
}
public function getPic():String
{
return pic;
}
public function setIntbl(intbl:Boolean):void
{
this.intbl = intbl;
}
public function getIntbl():Boolean
{
return intbl;
}
public function setTable(t:int):void
{
this.t = t;
}
public function getTable():int
{
return t;
}
public function setSeat(s:int):void
{
this.s = s;
}
public function getSeat():int
{
return s;
}
public function readExternal(input:IDataInput):void
{
redUser = input.readUTF();
uid = input.readInt();
fname = input.readUTF();
pic = input.readUTF();
intbl = input.readBoolean();
t = input.readInt();
s = input.readInt();
}
public function writeExternal(output:IDataOutput):void
{
output.writeUTF(redUser);
output.writeInt(uid);
output.writeUTF(fname);
output.writeUTF(pic);
output.writeBoolean(intbl);
output.writeInt(t);
output.writeInt(s);
}
}
}

[ERROR] [NioProcessor-1] org.red5.server.service.ServiceInvoker - Error executing call: Service: null Method: updateObjectData Num Params: 1 0: org.red5.core.LobbyType@18fad4b
[ERROR] [NioProcessor-1] org.red5.server.service.ServiceInvoker - Service invocation error
java.lang.reflect.InvocationTargetException: null



public function sendSomething():void
{
testObject = o as LobbyType;
// setters omitted to save space, I just filled the object with random data
testObject.registerObject();
ncLobby.call("updateLobbyType",null, testObject);
}
public void updateLobbyType(Object params)
{
LobbyType temp = new LobbyType();
System.out.println("It is: " + params.getClass().toString());
// It is: org.red5.core.LobbyType
}
public void updateLobbyType(Object params)
{
LobbyType temp = new LobbyType();
params.getClass().cast(temp);
System.out.println("It is: " + temp.getUid()); // getUid() is just a getter in the class
// It is: org.red5.core.LobbyType@11da1d1
}
public void updateLobbyType(Object[] params)
{
LobbyType temp = new LobbyType();
String red5User = (String) params[0];
int uid=Integer.parseInt(params[1].toString());
String fname = (String) params[2];
String pic = (String) params[3];
Boolean inttbl = (Boolean) params[4];
int t=Integer.parseInt(params[5].toString());
int s=Integer.parseInt(params[6].toString());
}
but only params[0] contains data which is just 'org.red5.core.LobbyType@11da1d1', the other objects in the array do not exist.
I guess my question is how do I send an object from AS3 to the Java server and access the members of that object class??


public void updateLobbyChat(LobbyType params)
{
someStringType = params.getFname();
}
Thanks again for all your help. It is so awesome to think complete strangers are willing to help others. :)


