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.onStatus = function (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