Hi Kerem,
I have noticed several occasions that the fp will disconnect from server automatically. For example, if I make the recording stream available for subscription, the subscriber will be automatically disconnected. This seems to be the same as you have met and I think it may be due to the behaviour of fp not the problem of Red5.

On 5/16/06, Kerem Hadimli <[EMAIL PROTECTED]> wrote:
sorry this is the 3rd message, it's 5 AM here, my mind is working slow :)

i'm attaching the server log if it helps

after the video codec tests, the server enters a disconnect phase,
starting from removing the stream.

     [java] [WARN] 38034 mina-1:(
org.red5.server.net.rtmp.RTMPMinaIoHandler.sessionOpened ) Is tcp
delay enabled: false
     [java] [DEBUG] 38044 mina-4:( org.red5.server.Server.lookupGlobal
) Check host and path: localhost/test
     [java] [DEBUG] 38044 mina-4:( org.red5.server.Scope.getContext )
returning context
     [java] [DEBUG] 38044 mina-4:( org.red5.server.Scope.hasChildScope
) Has child scope? test in [EMAIL PROTECTED] Depth = 0, Path = '',
Name = 'default']
     [java] [DEBUG] 38044 mina-4:( org.red5.server.CoreHandler.connect
) Connect to core handler ?
     [java] [DEBUG] 38054 mina-4:( org.red5.server.Scope.connect ) adding client
     [java] [DEBUG] 38054 mina-4:(
org.red5.server.adapter.ApplicationAdapter.appConnect ) appConnect:
[EMAIL PROTECTED]
     [java] [DEBUG] 38064 mina-4:(
org.red5.server.adapter.ApplicationAdapter.appJoin ) appJoin: Client:
1 >> [EMAIL PROTECTED] Depth = 1, Path = '/default', Name = 'test']
     [java] [DEBUG] 38064 mina-4:( org.red5.server.Scope.connect ) adding client
     [java] [DEBUG] 38064 mina-4:( org.red5.server.Scope.getContext )
returning context
     [java] [DEBUG] 38104 mina-4:( org.red5.server.Scope.getContext )
returning context
     [java] [DEBUG] 38104 mina-4:(
org.red5.server.service.ServiceInvoker.findMethodWithExactParameters )
Found 1 methods
     [java] [DEBUG] 38114 mina-4:(
org.red5.server.service.ServiceInvoker.invoke ) Invoking method:
public int org.red5.server.stream.ScopeWrappingStreamService.createStream()
     [java] [DEBUG] 38114 mina-4:(
org.red5.server.service.ServiceInvoker.invoke ) result: 1
     [java] [DEBUG] 38114 mina-4:( org.red5.server.Scope.getContext )
returning context
     [java] [DEBUG] 38114 mina-4:(
org.red5.server.service.ServiceInvoker.findMethodWithExactParameters )
Found 1 methods
     [java] [DEBUG] 38125 mina-4:(
org.red5.server.service.ServiceInvoker.invoke ) Invoking method:
public int org.red5.server.stream.ScopeWrappingStreamService.createStream()
     [java] [DEBUG] 38125 mina-4:(
org.red5.server.service.ServiceInvoker.invoke ) result: 2
     [java] [DEBUG] 40248 mina-4:( org.red5.server.Scope.getContext )
returning context
     [java] [DEBUG] 40258 mina-4:(
org.red5.server.service.ServiceInvoker.invoke )    0 => hede
     [java] [DEBUG] 40258 mina-4:(
org.red5.server.service.ServiceInvoker.invoke )    1 => live
     [java] [DEBUG] 40258 mina-4:(
org.red5.server.service.ServiceInvoker.findMethodWithExactParameters )
Found 1 methods
     [java] [DEBUG] 40258 mina-4:(
org.red5.server.service.ServiceInvoker.invoke ) Invoking method:
public void org.red5.server.stream.ScopeWrappingStreamService.publish(java.lang.String,java.lang.Str
ing)
     [java] [DEBUG] 40258 mina-4:( org.red5.server.Scope.addChildScope
) Add child scope: [EMAIL PROTECTED]
to [EMAIL PROTECTED] Depth = 1, Path = '/default', Name = 't
est']
     [java] [DEBUG] 40268 mina-4:( org.red5.server.Scope.getContext )
returning context
     [java] [DEBUG] 40268 mina-4:(
org.red5.server.service.ServiceInvoker.invoke ) result: null
     [java] [DEBUG] 40328 mina-1:( org.red5.server.Scope.getContext )
returning context
     [java] [DEBUG] 40338 mina-1:(
org.red5.server.service.ServiceInvoker.invoke )    0 => hede
     [java] [DEBUG] 40358 mina-1:(
org.red5.server.service.ServiceInvoker.findMethodWithExactParameters )
Found 1 methods
     [java] [DEBUG] 40368 mina-1:(
org.red5.server.service.ServiceInvoker.invoke ) Invoking method:
public void org.red5.server.stream.ScopeWrappingStreamService.play(java.lang.String)
     [java] [DEBUG] 40368 mina-1:( org.red5.server.Scope.hasChildScope
) Has child scope? hede in [EMAIL PROTECTED] Depth = 1, Path =
'/default', Name = 'test']
     [java] [DEBUG] 40388 mina-1:(
org.red5.server.service.ServiceInvoker.invoke ) result: null
     [java] [INFO] 40398 mina-1:(
org.red5.server.stream.VideoCodecFactory.getVideoCodec ) Trying codec
[EMAIL PROTECTED]
     [java] [INFO] 40398 mina-1:(
org.red5.server.stream.VideoCodecFactory.getVideoCodec ) Trying codec
[EMAIL PROTECTED]
     [java] [INFO] 41399 mina-4:(
org.red5.server.stream.ScopeWrappingStreamManager.deleteStream )
Remove stream scope:[EMAIL PROTECTED]
     [java] [DEBUG] 41399 mina-4:(
org.red5.server.Scope.removeChildScope ) Remove child scope
     [java] [DEBUG] 41399 mina-4:(
org.red5.server.BaseConnection.close ) Close, disconnect from scope,
and children
     [java] [DEBUG] 41399 mina-4:(
org.red5.server.adapter.ApplicationAdapter.disconnect ) disconnect
     [java] [DEBUG] 41399 mina-4:(
org.red5.server.adapter.ApplicationAdapter.appDisconnect )
appDisconnect: [EMAIL PROTECTED]
     [java] [DEBUG] 41399 mina-4:(
org.red5.server.adapter.ApplicationAdapter.leave ) leave
     [java] [DEBUG] 41399 mina-4:(
org.red5.server.adapter.ApplicationAdapter.appLeave ) appLeave:
Client: 1 << [EMAIL PROTECTED] Depth = 1, Path = '/default', Name =
'test']

-kerem

On 5/16/06, Kerem Hadimli <[EMAIL PROTECTED]> wrote:
> oh, forgot to tell, i've tested this behaviour with red5-0_4-branch on svn
>
> -kerem
>
> On 5/16/06, Kerem Hadimli <[EMAIL PROTECTED]> wrote:
> > well, we've been having some interesting disconnect bugs in the test
> > conference application we're developing. The problem was actually,
> > when 2 clients are connected, one (say A) disconnects and reconnects,
> > publishes stream with a different name, the other one (say B)
> > subscribes to it, and then B is disconnected from server. Server-log
> > seems like its normal, the client closed connection. Client
> > NetConnection.onStatus() gets a Connection.Closed. But i couldn't find
> > it.
> >
> > I've managed to regenerate a similar bug, i'm not sure if this is the
> > same, i don't think we have a "subscribe to own stream" in the client,
> > but we may have :)
> >
> > i've been trying to regenerate this behaviour for the last 6 hours,
> > and i think i've managed to do so. Just, a client connects, starting
> > publishing his cam with a name, and then he creates a second NetStream
> > object and subscribes to his own stream.
> >
> > The server sometimes disconnects the client directly, and sometimes
> > not, i'd say %50 of the time. Just connect&disconnect a few times if
> > it doesn't on the first try. (sometimes it does on the first try, so
> > i'm sure it's not about some garbage from old connection)
> >
> > I'm not sure if this is the cause of the problem in our test
> > client/application, i don't think it subscribes to its own stream (but
> > i'll check it), the actual problem may be somewhere else, but this
> > code below seems to regenerate the problem.
> >
> > here's the actionscript, just add the 3 items on stage and there you go
> >
> > ---------------
> > // 3 elements needed on stage
> > // ConnectButton -- a button
> > // video         -- a video object
> > // Text          -- a textarea object
> >
> >
> > nc = new NetConnection();
> >
> > var ns1 = null;
> > var ns2 = null;
> >
> > ConnectButton.text = "Connect";
> >
> > nc. (info)
> > {
> >         Text.text += info.code + "\n";
> >         ConnectButton.enabled = true;
> >
> >         switch(info.code)
> >         {
> >                 case "NetConnection.Connect.Success":
> >                         ConnectButton.label = "Disconnect";
> >
> >                         ns1 = new NetStream(nc);
> >                         ns1.attachVideo(Camera.get());
> >                         ns1.publish("hede", "live");
> >
> >                         ns2 = new NetStream(nc);
> >                         video.attachVideo(ns2);
> >                         ns2.play("hede");
> >
> >                         break;
> >                 case "NetConnection.Connect.Failed":
> >                         ConnectButton.label = "Connect";
> >                         break;
> >                 case " NetConnection.Connect.Closed":
> >                         ConnectButton.label = "Connect";
> >
> >                         if (ns1 != null)
> >                         {
> >                                 ns1.close();
> >                                 ns1 = null;
> >                         }
> >                         if (ns2 != null)
> >                         {
> >                                 ns2.close();
> >                                 ns2 = null;
> >                                 video.clear();
> >                         }
> >
> >                         break;
> >         }
> > }
> >
> > ConnectButton.addEventListener("click", this);
> >
> > function click (ev)
> > {
> >         var button = ev.target;
> >         if (button == ConnectButton)
> >         {
> >                 switch (button.label)
> >                 {
> >                 case "Connect":
> >                         nc.connect("rtmp://localhost/test");
> >                         button.label = "Wait...";
> >                         button.enabled = false;
> >                         break;
> >                 case "Disconnect":
> >                         nc.close();
> >                         button.label = "Connect";
> >                         break;
> >                 }
> >         }
> > }
> > -----------------
> >
> > -kerem
> >
>

_______________________________________________
Red5 mailing list
[email protected]
http://osflash.org/mailman/listinfo/red5_osflash.org



--
Best Regards
Steven Gong
_______________________________________________
Red5 mailing list
[email protected]
http://osflash.org/mailman/listinfo/red5_osflash.org

Reply via email to