This appears to just make a connection and call some remoting methods,
is that right? How would you send audio or video over this connection?
Sri Kalyanaraman wrote:
> Hi guys,
>
> Here goes the code for RTMP client simulation. Please watch out for the
> package name. This works nicely!
> -------------------------------------------------------------------------------------------------------------------------------------------------------
> package org.red5.server.webapp.echo;
>
> import java.util.ArrayList;
> import java.util.HashMap;
> import java.util.List;
> import java.util.Map;
> import java.util.Random;
>
> import org.apache.commons.lang.RandomStringUtils;
> import org.red5.io.utils.ObjectMap;
> import org.red5.server.api.IConnection;
> import org.red5.server.api.Red5;
> import org.red5.server.api.service.IPendingServiceCall;
> import org.red5.server.api.service.IPendingServiceCallback;
> import org.red5.server.net.rtmp.MyRTMPClient;
>
> /**
> * A simple client simulation
> */
> public class TestClient {
> public static void main(String[] args) {
>
> List<String> userNames = new ArrayList<String>();
> userNames.add("sri");
> userNames.add("something");
>
> for (String name : userNames) {
>
> try {
> Thread t = new Thread(new MyCallback(name));
> Thread.sleep(5000);
> t.start();
> } catch (InterruptedException e) {
> e.printStackTrace();
> }
> }
> }
> static class MyCallback implements Runnable {
>
> MyRTMPClient client = new MyRTMPClient();
>
> List<String> actions = new ArrayList<String>();
>
> protected static final ThreadLocal<IConnection> currentSession =
> new ThreadLocal<IConnection>();
>
> static boolean created = false;
>
> IConnection conn = null;
>
> public MyCallback(String name) {
> init(name);
> }
>
> public void run() {
>
> try {
> Red5.setConnectionLocal(conn);
> while (true) {
>
> client.invoke("yourService.method1", new Object[] {
> "firstparam","secondparam"},
> new IPendingServiceCallback() {
> public void
> resultReceived(IPendingServiceCall call) {
> System.err.println("Result Received: "
> + call.getResult());
> }
> });
>
> client.invoke("anotherService.anotherMethod",
> new Object[] {
> 1,3}, new IPendingServiceCallback() {
> public void
> resultReceived(IPendingServiceCall call) {
> System.err.println("Result Received: "
> + call.getResult());
> }
> });
>
>
> Thread.sleep(5000);
> client.invoke("anotherService.anotherMethod2", new
> Object[] {"2",true },
> new IPendingServiceCallback() {
> public void
> resultReceived(IPendingServiceCall call) {
> System.err.println("Result Received: "
> + call.getResult());
> }
> });
>
> Thread.sleep(10000);
> }
> } catch (InterruptedException e) {
> e.printStackTrace();
> }
> }
>
> private void init(String login) {
> ObjectMap<String, Object> params = new ObjectMap<String,
> Object>();
>
> params.put("app", "yourapp/room/3354");
> params.put("tcUrl", "rtmp://192.168.253.85/yourapp/room/3354");
>
> Map<String, Object> tparams = new HashMap<String, Object>();
> tparams.put("password", "password");
> tparams.put("username", login);
> Object[] obj = new Object[] { tparams };
> client.connect("192.168.253.85", 1935, params, obj,
> new IPendingServiceCallback() {
> public void resultReceived(IPendingServiceCall
> call) {
> System.err.println("Second result Received: "
> + call.getResult() + "::"
> + Red5.getConnectionLocal().hashCode());
>
> conn = Red5.getConnectionLocal();
>
> }
> });
> }
> }
>
> }
>
>
>
> _______________________________________________
> Red5 mailing list
> [email protected]
> http://osflash.org/mailman/listinfo/red5_osflash.org
>
_______________________________________________
Red5 mailing list
[email protected]
http://osflash.org/mailman/listinfo/red5_osflash.org