IServiceCapableConnection red5 sans effet
Bonjour,
Je développe un chat avec red5 et de l'as3 (flash developp, flash player 10, java : 1.6.0_23, red5 (peut être la 0.9.1)).
A l'heure actuelle, ma connection entre mon application flash et mon serveur red5 se fait correctement, je n'ai pas d'erreurs, ni d'un côté, ni de l'autre.
Lorsque je fais appel à une fonction depuis flash, telle que :
Code:
nc.call("sendpublicmess",responder, user.pseudo);
mon serveur red5, appel bien ma fonction flash sendpublicmess en transmettant les bonnes infos.
Par contre, quand je fais appel, côté java, à des fonctions telles que :
Code:
1 2 3 4 5 6 7
| if (conn instanceof IServiceCapableConnection)
{
IServiceCapableConnection sc = (IServiceCapableConnection) conn;
sc.invoke("joinuser", new Object[]{conn.getClient().getId()});
System.out.println("connect IConnection nombre params="+conn);
} |
ou
Code:
1 2 3
| serviceUtils.invokeOnAllConnections (scope, "joinuser", new Object[] {"ok"} );
( ou serviceUtils.invokeOnAllConnections ("joinuser", new Object[] {"ok"} ); )
System.out.println("connect IConnection nombre params="+conn); |
je n'ai aucunes erreurs affichée dans mon terminal, mon message
Citation:
connect IConnection nombre params=RTMPMinaConnection from 127.0.0.1 to localhost (in: 3357 out 3073)
apparait bien dans les deux cas.
Par contre, côté flash, rien, je n'ai aucune réaction suite à l'appel de ce script.
Je ne sais pas si mon problème vient de java qui n’envoie pas les données ou de flash qui ne les réceptionnent pas (pbm d'écouteurs ?)
A noter côté flash, j'ai bien :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| rtmpString = "rtmp://localhost/...."
this.nc.objectEncoding = 3;
this.nc.client = {
onBWDone: function():void { }
};
this.nc.addEventListener("netStatus", onNCStatus);
this.nc.connect(rtmpString, user.pseudo, ...);
public function onNCStatus(event:NetStatusEvent):void {
trace("Main :: default :: " +event.info.code);
//-- normalement inutile mais j'ai tt essayé
responder = new Responder(resultHandler, errorHandler);
....
public function joinuser(idclient:int, ... |
Côté java, j'ai :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public boolean connect(IConnection conn, IScope scope, Object[] params) {
if (conn instanceof IServiceCapableConnection)
{
IServiceCapableConnection sc = (IServiceCapableConnection) conn;
sc.invoke("joinuser", new Object[]{conn.getClient().getId(), ...});
System.out.println("connect IConnection nombre params="+conn);
//-- je passe bien ici
}
ServiceUtils.invokeOnAllConnections ("joinuser", new Object[] {"ok", ....} );
serviceUtils.invokeOnAllConnections (scope, "joinuser", new Object[] {"ok",...} );
public boolean joinuser(String vara,String varb,String varc,String vard) {
System.out.println("Joinuser");
return true;
} |
A noter, j'ai essay à peu prêt toutes les variantes posssibles, et rien n'y fait, j'ai pas d'erreurs, je peux tout faire à part ça : me connecter au serveur, déconnecter, appeler d'autres fonctions, récupérer la liste des utilisateurs ... mais tout ce qui touche à l'appel de fonctions flash depuis red5 reste sans effet.