Server code:
Code: Select all
@Override
public void handleClientRequest(User u, ISFSObject data) {
ISFSObject res = new SFSObject();
ISFSArray arr = new SFSArray();
for (int i = 0; i < 3; i++) {
ISFSObject randomObj = new SFSObject();
randomObj.putBool("meh", true);
randomObj.putInt("i", i);
randomObj.putUtfString("txt", "meh meh " + i);
randomObj.putInt("x", i);
randomObj.putUtfString("txt2", "mah mah " + i);
randomObj.putInt("y", i);
randomObj.putUtfString("txt3", "muh muh " + i);
arr.addSFSObject(randomObj);
}
res.putSFSArray("an array", arr);
res.putUtfString("msg", "this is an object");
// this.send("sfsTestResponse", res, u);
List<UserVariable> vars = new ArrayList<UserVariable>();
UserVariable uvar1 = new SFSUserVariable("var1", "test string variable");
UserVariable uvar2 = new SFSUserVariable("var2", res);
vars.add(uvar2);
vars.add(uvar1);
getApi().setUserVariables(u, vars);
}
Client code:
Code: Select all
public void OnUserVarUpdate(BaseEvent e) {
Console.WriteLine("User var update");
ArrayList changedVars = (ArrayList)e.Params["changedVars"];
Console.WriteLine("Changed vars:" + changedVars.Count);
Console.WriteLine("User var:" + sfs.MySelf.GetVariable("var2").ToSFSArray().GetDump());
Client response:
Code: Select all
User var update
Changed vars:2
User var:
(utf_string) var2
(byte) 5
(sfs_object)
(utf_string) msg: this is an object
(sfs_array) an array:
(sfs_object)
(utf_string) txt: meh meh 0
(utf_string) txt2: mah mah 0
(int) x: 0
(bool) meh: True
(int) y: 0
(int) i: 0
(utf_string) txt3: muh muh 0
(sfs_object)
(utf_string) txt: meh meh 1
(utf_string) txt2: mah mah 1
(int) x: 1
(bool) meh: True
(int) y: 1
(int) i: 1
(utf_string) txt3: muh muh 1
(sfs_object)
(utf_string) txt: meh meh 2
(utf_string) txt2: mah mah 2
(int) x: 2
(bool) meh: True
(int) y: 2
(int) i: 2
(utf_string) txt3: muh muh 2