This code works fine when the method "the_method" is defined on the
connection,
var nc:NetConnection = new NetConnection();
nc.the_method = function(.....) {}
but, if you want to call a method of a client class instance, you must
keep the
instance on the connection, like this
nc.MyClass["myinstance"] = myinstance; (for example)
this way, I can call all the public methods of this instance from the
server
RTMPConnection.invoke("MyClass/myinstance/the_method", ....)
I need to make this to migrate FMS components without changing
their client sides.
Regards
África Belén Romero Fernández
Fynet Solutions
981 634 067
[EMAIL PROTECTED]
http://www.fynet.net
"Matteo Lanzi" <[EMAIL PROTECTED]>
Enviado por: [EMAIL PROTECTED]
25/09/2007 11:56
Por favor, responda a Open Source Flash Mailing List
Para: "'Open Source Flash Mailing List'" <[email protected]>
cc:
Asunto: [osflash] R: R: Rm: Client functions call from a Red5
server
Taken from migration guide
Calls to client methods
==========================
To call methods from your Red5 application on the client, you will first
need
a reference to the current connection object::
import org.red5.server.api.IConnection;
import org.red5.server.api.Red5;
import org.red5.server.api.service.IServiceCapableConnection;
...
IConnection conn = Red5.getConnectionLocal();
If the connection implements the IServiceCapableConnection_ interface, it
supports calling methods on the other end::
if (conn instanceof IServiceCapableConnection) {
IServiceCapableConnection sc = (IServiceCapableConnection) conn;
sc.invoke("the_method", new Object[]{"One", 1});
}
If you need the result of the method call, you must provide a class that
implements the IPendingServiceCallback_ interface::
import org.red5.server.api.service.IPendingService;
import org.red5.server.api.service.IPendingServiceCallback;
class MyCallback implements IPendingServiceCallback {
public void resultReceived(IPendingServiceCall call) {
// Do something with "call.getResult()"
}
}
The method call looks now like this::
if (conn instanceof IServiceCapableConnection) {
IServiceCapableConnection sc = (IServiceCapableConnection) conn;
sc.invoke("the_method", new Object[]{"One", 1}, new MyCallback());
}
Of course you can implement this interface in your application and pass a
reference to the application instance.
Ciao
Matteo Lanzi
-----Messaggio originale-----
Da: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Per
conto di [EMAIL PROTECTED]
Inviato: martedì 25 settembre 2007 9.59
A: Open Source Flash Mailing List
Oggetto: Re: [osflash] R: Rm: Client functions call from a Red5 server
Sorry, I was referring to I WAS talking about invoking client functions
from Red5....
África Belén Romero Fernández
Fynet Solutions
981 634 067
[EMAIL PROTECTED]
http://www.fynet.net
[EMAIL PROTECTED]
Enviado por: [EMAIL PROTECTED]
25/09/2007 09:48
Por favor, responda a Open Source Flash Mailing List
Para: Open Source Flash Mailing List <[email protected]>
cc:
Asunto: Re: [osflash] R: Rm: Client functions call from a
Red5 server
No, I wasn't talking about invoking client functions from Red5,
but I think that now I know how to do it : if the client class instance
that is kept in the connection
is named (i.e.) "FCAVPresence.stream", to invoke a method of this class
you must use :
RTMPConnection.invoke("FCAVPresence/stream/methodName",...)
which is the way that FCS/FMS uses internally.
There's other way : we can extend PendingCall class to compose our method
in this way
(with / separator) , and we could use the method
RTMPConnection.invoke(MyPendingCall call,...)
instead of invoke(String method, ....)
Thanks Matteo.
África Belén Romero Fernández
Fynet Solutions
981 634 067
[EMAIL PROTECTED]
http://www.fynet.net
"Matteo Lanzi" <[EMAIL PROTECTED]>
Enviado por: [EMAIL PROTECTED]
24/09/2007 19:21
Por favor, responda a Open Source Flash Mailing List
Para: "'Open Source Flash Mailing List'"
<[email protected]>
cc:
Asunto: [osflash] R: Rm: Client functions call from a Red5
server
U can define a function insede the class that extends Apllication adapter
and than calli t from the flash client in the same way as FCS
Ciao
Matteo Lanzi
-----Messaggio originale-----
Da: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Per
conto di [EMAIL PROTECTED]
Inviato: lunedì 24 settembre 2007 17.43
A: Open Source Flash Mailing List
Oggetto: [osflash] Rm: Client functions call from a Red5 server
Hello everybody :
I've one question about client functions call from a Red5 server.
Previously with FMS, the client classes instances were registered with a
name into the connection,
and , from the server using prefixes (= registered name), these instance
methods could be called,
without being defined in the connection.
Does anybody know any way to do this with Red5?
As I've seen, we can only invoke methods defined in the NetConnection.
Thanks in advance,
África Belén Romero Fernández
Fynet Solutions
981 634 067
[EMAIL PROTECTED]
http://www.fynet.net_______________________________________________
osflash mailing list
[email protected]
http://osflash.org/mailman/listinfo/osflash_osflash.org
_______________________________________________
osflash mailing list
[email protected]
http://osflash.org/mailman/listinfo/osflash_osflash.org
_______________________________________________
osflash mailing list
[email protected]
http://osflash.org/mailman/listinfo/osflash_osflash.org
_______________________________________________
osflash mailing list
[email protected]
http://osflash.org/mailman/listinfo/osflash_osflash.org