Suite a un post sur Media box que j'avais fait il y a un bon moment je décide ici de mettre a disposition un exemple simple et rapide pour en comprendre le fonctionnement.

Avant toute chose il nous faut créer 2 répertoires que nous nommerons AppMaster et AppChild. AppMaster sera l'application qui stockera le proxied (virtuellement ou en dur) et donc dispatchera les données a toutes les connections lié au proxied.

AppChild est une application qui établira une connexion avec le proxied.

Le principe est simple AppMaster va créer le proxiedSO, Appchild se connecte au proxiedSO grâce a la class NetConnection cote server, le client se connecte a AppChild et va récupérer les info du PSO(proxied shared object) de AppChild.

Quand je modifie le proxied a partir du client la modification s'opère sur le PSO de AppMaster et donc sur toutes les applications et client connecté a ce dernier.

AppMaster Coté Server :

 
application.onAppStart = function() {
    FSO = SharedObject.get("liste", false);
    FSO.setProperty("toto", "voici un test");
}

AppChild Coté Server :

 
application.onAppStart = function() {
  nc = new NetConnection(); 
  nc.connect("rtmp://localhost/AppMaster"); 
  ProxiedFSO= SharedObject.get("liste", false, nc); 
}; 
 
application.onConnect = function(client) { 
   application.acceptConnection(client); 
};

Coté Client :

 
var nc:NetConnection = new NetConnection();
nc.onStatus = function(objInfo) {
	trace(objInfo.code);
};
nc.connect("rtmp://localhost/AppChild/test");
var SO:SharedObject = SharedObject.getRemote("liste", nc.uri, false);
SO.connect(nc);
SO.onSync = function() {
	for (i in this.data) {
		trace(i+" : "+this.data[i]);
	}
};
btnSend.onPress = function() {
	SO.data.toto2 = "creation de toto2";
};

IMPORTANT : Vous devez spécifier les mêmes paramètres de connexion au shared object :

  1. le même nom (dans exemple "liste")
  2. la même persistance (true ou false)

Source