Vasiliy seems to almost fixed RTMPT flash connect :)
Screen sharing applet still unable to connect :(


On Thu, Aug 1, 2013 at 6:29 PM, Maxim Solodovnik <[email protected]>wrote:

> Is there any option to make it "not-changed"
>
>
> On Thu, Aug 1, 2013 at 6:29 PM, Maxim Solodovnik <[email protected]>wrote:
>
>> In wicket login I'm passing publicSID, not sure how good is :(
>> it seems like publicSID is changed on reconnect. Is there any option to
>> make it
>>
>>
>> On Thu, Aug 1, 2013 at 6:10 PM, [email protected] <
>> [email protected]> wrote:
>>
>>> Hi Maxim,
>>>
>>> have you seen the section in "Test 3".
>>> I have faced the same behaviour in a couple of the test.
>>>
>>> The issue was that the ScreenController is called with the wrong
>>> publicSID. The reason for that is unkown but probably the method
>>> "getpublicSID" was never successfully called when you enter the room, as
>>> the Client is using the publicSID of the RTMP connection that was connected
>>> to the scope "hibernate".
>>>
>>> I have even included the strings in my test feedback.
>>>
>>> So its not really as if the room_id is empty, the client is simply using
>>> the wrong parameters to call the method.
>>>
>>> Hope that gets clearer now. I have committed a small patch:
>>> http://svn.apache.org/r1509157
>>>
>>> That does output the entire Client session object in the log statement,
>>> so you can see what publicSID and sessionId was used,
>>> => Its simply the wrong one!
>>>
>>> Sebastian
>>>
>>>
>>> 2013/8/1 Maxim Solodovnik <[email protected]>
>>>
>>>> >> One interesting thing to test might be to try the RTMPT standalone
>>>> version, just to compare to see if its a basic session handling issue or
>>>> just an issue if you use the Servlet version.
>>>>
>>>> It seems to be good idea! Thanks!
>>>> Somehow I always able to enter the room or to the OM, but room_id in
>>>> Client is always null :(
>>>>
>>>>
>>>> On Thu, Aug 1, 2013 at 4:49 PM, [email protected] <
>>>> [email protected]> wrote:
>>>>
>>>>> Sorry I misunderstood you.
>>>>>
>>>>> I am testing rtmpt by manipulating the config.xml and setting the
>>>>> rtmpport to a nonsense value to force it using RTMPT.
>>>>>
>>>>> *Test 1: Using the flash standalone version. When I enter the
>>>>> conference room using RTMPT it does not login the user correctly at all.
>>>>> You can see error log messages.*
>>>>>
>>>>> but you can also see it in the client UI:
>>>>> There user list does not show the user. There is something broken
>>>>> during the login commands.
>>>>> I can debug the issue further to track down which calls fail but
>>>>> somehow the user never really is logged in, so I guess the room Id is 
>>>>> never
>>>>> set to his session object.
>>>>>
>>>>> If you look at the connection console: (
>>>>> http://localhost:5080/openmeetings/#admin/connection):
>>>>> You can see that the RTMPT connected user is not even listed in the
>>>>> list of active connections.
>>>>>
>>>>> So I suspect that the entire connection mechanism in Red5 using RTMPT
>>>>> is broken, at least with the red5 revision that I am testing (Red5 Server
>>>>> 1.0.2 $Rev: 4697) .That should be the latest one.
>>>>>
>>>>> *Test 2: Using the flash standalone version. This time the RTMPT
>>>>> serlvet somehow lets me inside the room,*
>>>>> anyhow looking at:
>>>>> http://localhost:5080/openmeetings/#admin/connection)
>>>>> I can still see 3 connections, one to scope hibernate and two in the
>>>>> room, but actually it should be just two in the room and the one to type
>>>>> hibernate should be closed when I disconnected to enter the conference 
>>>>> room.
>>>>>
>>>>> After a while the hibernate connection somehow is "gone" (without me
>>>>> doing anything). It seems like the Servlet does not really do actively
>>>>> monitor things in "real time" it simply does some kind of timeout. Or is
>>>>> broken.
>>>>>
>>>>> However the room_id is correctly set, when I request the Screensharing
>>>>> client it contains:
>>>>> <argument>openmeetings/7</argument>
>>>>>
>>>>> And the RTMPT version will start up. However if I click start sharing
>>>>> or start recording it will throw:
>>>>> ERROR 08-01 21:22:41.456 RTMPProtocolEncoder.java 19233 111
>>>>> org.red5.server.net.rtmp.codec.RTMPProtocolEncoder [Thread-19] - Error
>>>>> encoding
>>>>>
>>>>> java.lang.NullPointerException: null
>>>>>     at
>>>>> org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.dropMessage(RTMPProtocolEncoder.java:225)
>>>>> ~[red5-server.jar:na]
>>>>>     at
>>>>> org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encodePacket(RTMPProtocolEncoder.java:133)
>>>>> ~[red5-server.jar:na]
>>>>>     at
>>>>> org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encode(RTMPProtocolEncoder.java:109)
>>>>> ~[red5-server.jar:na]
>>>>>     at
>>>>> org.red5.client.net.rtmpt.BaseRTMPTConnection.write(BaseRTMPTConnection.java:240)
>>>>> ~[red5-client-1.0.2-RC1.jar:1.0.2-RC1]
>>>>>     at org.red5.server.net.rtmp.Channel.write(Channel.java:138)
>>>>> ~[red5-server.jar:na]
>>>>>     at org.red5.server.net.rtmp.Channel.write(Channel.java:107)
>>>>> ~[red5-server.jar:na]
>>>>>     at
>>>>> org.red5.server.stream.consumer.ConnectionConsumer.pushMessage(ConnectionConsumer.java:183)
>>>>> ~[red5-server.jar:na]
>>>>>     at
>>>>> org.red5.client.net.rtmp.BaseRTMPClientHandler.publishStreamData(BaseRTMPClientHandler.java:565)
>>>>> ~[red5-client-1.0.2-RC1.jar:1.0.2-RC1]
>>>>>     at
>>>>> org.apache.openmeetings.screen.webstart.CaptureScreen.pushVideo(CaptureScreen.java:130)
>>>>> ~[openmeetings-screenshare-3.0.0-SNAPSHOT.jar:na]
>>>>>     at
>>>>> org.apache.openmeetings.screen.webstart.CaptureScreen.run(CaptureScreen.java:87)
>>>>> ~[openmeetings-screenshare-3.0.0-SNAPSHOT.jar:na]
>>>>>
>>>>> *
>>>>> *
>>>>> *Test 3: Using the HTML5 version and then entering the room.*
>>>>>
>>>>> It seems to log me in fine using RTMPT, when I look at:
>>>>> http://localhost:5080/openmeetings/#admin/connection
>>>>> The room_id is correctly set in the RoomClient
>>>>>
>>>>> But when I click on the button to request the JNLP file I get:
>>>>> ERROR 08-01 21:27:22.060 ScreenController.java 1263660 224
>>>>> org.apache.openmeetings.servlet.outputhandler.ScreenController
>>>>> [http-bio-0.0.0.0-5080-exec-11] - [ScreenController]
>>>>> java.lang.Exception: Client has no room
>>>>>
>>>>> I could repeat this use case / test and reproduce the issue. However I
>>>>> sometimes run again in scenario 1 again where simply the user is not even
>>>>> shown in the list of users after I login.
>>>>>
>>>>> I debugged the Exception a bit, and found out:
>>>>>
>>>>> The Servlet is using the wrong Client Session Object! If you look at
>>>>> the modified debug statement that I produced:
>>>>> java.lang.Exception: Client has no room
>>>>> org.apache.openmeetings.persistence.beans.room.Client@7825114aStreamId: 
>>>>> 3B5TYPGH9LIZJ PublicSID: 00f4343597d130cd68762da623e2b127 UserId:
>>>>> 1 RoomId: null isScreenClient: false flvRecordingId: null
>>>>> screenPublishStarted: false flvRecordingMetaDataId: null isRecording: 
>>>>> false
>>>>> isAVClient: false broadCastID: -2 avsettings:  server: null
>>>>>
>>>>> => And then look at the
>>>>> http://localhost:5080/openmeetings/#admin/connection
>>>>>
>>>>> StreamId: 3B5TYPGH9LIZJ is simply not the Client object that is in the
>>>>> room, it is another one!
>>>>> So we basically request the screensharing client with the wrong
>>>>> publicSID. But where this is coming from, I don't know.
>>>>>
>>>>> This does simply work fine using RTMP instead of RTMPT.
>>>>> Or in other words, somehow the RTMPT connection has major issues with
>>>>> handling the connection.
>>>>>
>>>>> ----------------------
>>>>>
>>>>> I am a bit reluctant to debug that further, I made now 3 tests and
>>>>> receive randomly results where either the login into the room is
>>>>> incomplete, sessions on the server are not correctly closed or somehow the
>>>>> client does not seem to process certain calls. That just does not seem to
>>>>> be worth now to debug this to the very end and is seems to be quite
>>>>> unstable.
>>>>>
>>>>> From my point of view, the RTMPT Servlet has some major issue in the
>>>>> connection establishing and session handling.
>>>>> Sessions get mixed up, calls might be dropped, and the session stay
>>>>> open way longer then needed.
>>>>>
>>>>> One interesting thing to test might be to try the RTMPT standalone
>>>>> version, just to compare to see if its a basic session handling issue or
>>>>> just an issue if you use the Servlet version.
>>>>>
>>>>>
>>>>> --------------------
>>>>>
>>>>> Additional logging/error/warnings statements in the red5/server log.
>>>>> But I guess you experienced the same.
>>>>>
>>>>> Thousand of this type:
>>>>> [DEBUG] [http-bio-0.0.0.0-5080-exec-3]
>>>>> org.red5.server.net.rtmpt.RTMPTConnection - Pending messages out: 0
>>>>>
>>>>> And:
>>>>> [WARN] [http-bio-0.0.0.0-5080-exec-10]
>>>>> org.red5.server.net.rtmp.RTMPConnManager - Connection not found for
>>>>> Q1KMWA85XXNZQ
>>>>> [WARN] [http-bio-0.0.0.0-5080-exec-10]
>>>>> org.red5.server.net.rtmpt.RTMPTServlet - Null connection for session id:
>>>>> Q1KMWA85XXNZQ
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> 2013/8/1 Maxim Solodovnik <[email protected]>
>>>>>
>>>>>> Hello Sebastian,
>>>>>>
>>>>>> RTMPT configuration was changed according to the Paul's comments: [1]
>>>>>> Since then there is no need in additional port for RTMPT (OM HTTP
>>>>>> port is always used, and can be redirected via Apache or changed to be 80
>>>>>> in red5.properties)
>>>>>>
>>>>>> RTMP client is broken in red5: [2]
>>>>>> RTMPT is working if started from the debugger (with the Exceptions
>>>>>> you have described, already reported to Paul)
>>>>>>
>>>>>> The issue I ask you to take a look at is:
>>>>>> In case user enters the room using RTMPT *.jnlp file is failed to be
>>>>>> created since room_id == null
>>>>>>
>>>>>> [1]
>>>>>> https://groups.google.com/d/topic/red5interest/14I7Ya2WjgQ/discussion
>>>>>> [2]
>>>>>> https://groups.google.com/d/topic/red5interest/2_JuBOY8WhU/discussion
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Thu, Aug 1, 2013 at 2:34 PM, [email protected] <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> I can see in the source code that the RTMPT port is no more
>>>>>>> configurable.
>>>>>>> Actually setting rtmpt to port 443 was a common way to solve 99% of
>>>>>>> all Firewall issues.
>>>>>>> How would you do that now? You have to set the http port to 443 ?
>>>>>>>
>>>>>>> And I don't know how stable the RTMPT Servlet is. There have been
>>>>>>> issue with it in the past.
>>>>>>> What was the reason for that change ?
>>>>>>>
>>>>>>> And screenharing over RTMPT does not work for me at all. Same as
>>>>>>> RTMP.But the behaviour is slightly different.
>>>>>>> RTMP version throws handshake error.
>>>>>>>
>>>>>>> RTMPT does not but it has other exceptions. In the console of the
>>>>>>> RTMPT JavaWebStart application you can find lots of exceptions throws 
>>>>>>> like
>>>>>>> this:
>>>>>>>
>>>>>>> ERROR 08-01 19:28:26.894 RTMPProtocolEncoder.java 34725 111
>>>>>>> org.red5.server.net.rtmp.codec.RTMPProtocolEncoder [Thread-19] - Error
>>>>>>> encoding
>>>>>>> java.lang.NullPointerException: null
>>>>>>>     at
>>>>>>> org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.dropMessage(RTMPProtocolEncoder.java:225)
>>>>>>> ~[red5-server.jar:na]
>>>>>>>     at
>>>>>>> org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encodePacket(RTMPProtocolEncoder.java:133)
>>>>>>> ~[red5-server.jar:na]
>>>>>>>     at
>>>>>>> org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encode(RTMPProtocolEncoder.java:109)
>>>>>>> ~[red5-server.jar:na]
>>>>>>>     at
>>>>>>> org.red5.client.net.rtmpt.BaseRTMPTConnection.write(BaseRTMPTConnection.java:240)
>>>>>>> ~[red5-client-1.0.2-RC1.jar:1.0.2-RC1]
>>>>>>>     at org.red5.server.net.rtmp.Channel.write(Channel.java:138)
>>>>>>> ~[red5-server.jar:na]
>>>>>>>     at org.red5.server.net.rtmp.Channel.write(Channel.java:107)
>>>>>>> ~[red5-server.jar:na]
>>>>>>>     at
>>>>>>> org.red5.server.stream.consumer.ConnectionConsumer.pushMessage(ConnectionConsumer.java:183)
>>>>>>> ~[red5-server.jar:na]
>>>>>>>     at
>>>>>>> org.red5.client.net.rtmp.BaseRTMPClientHandler.publishStreamData(BaseRTMPClientHandler.java:565)
>>>>>>> ~[red5-client-1.0.2-RC1.jar:1.0.2-RC1]
>>>>>>>     at
>>>>>>> org.apache.openmeetings.screen.webstart.CaptureScreen.pushVideo(CaptureScreen.java:130)
>>>>>>> ~[openmeetings-screenshare-3.0.0-SNAPSHOT.jar:na]
>>>>>>>     at
>>>>>>> org.apache.openmeetings.screen.webstart.CaptureScreen.run(CaptureScreen.java:87)
>>>>>>> ~[openmeetings-screenshare-3.0.0-SNAPSHOT.jar:na]
>>>>>>> ERROR 08-01 19:28:29.412 RTMPProtocolEncoder.java 37243 111
>>>>>>> org.red5.server.net.rtmp.codec.RTMPProtocolEncoder [Thread-19] - Error
>>>>>>> encoding
>>>>>>> java.lang.NullPointerException: null
>>>>>>>     at
>>>>>>> org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encodeCommand(RTMPProtocolEncoder.java:763)
>>>>>>> ~[red5-server.jar:na]
>>>>>>>     at
>>>>>>> org.red5.server.net.rtmpt.codec.RTMPTProtocolEncoder.encodeCommand(RTMPTProtocolEncoder.java:49)
>>>>>>> ~[red5-server.jar:na]
>>>>>>>     at
>>>>>>> org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encodeCommand(RTMPProtocolEncoder.java:731)
>>>>>>> ~[red5-server.jar:na]
>>>>>>>     at
>>>>>>> org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encodeInvoke(RTMPProtocolEncoder.java:719)
>>>>>>> ~[red5-server.jar:na]
>>>>>>>     at
>>>>>>> org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encodeMessage(RTMPProtocolEncoder.java:499)
>>>>>>> ~[red5-server.jar:na]
>>>>>>>     at
>>>>>>> org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encodePacket(RTMPProtocolEncoder.java:134)
>>>>>>> ~[red5-server.jar:na]
>>>>>>>     at
>>>>>>> org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encode(RTMPProtocolEncoder.java:109)
>>>>>>> ~[red5-server.jar:na]
>>>>>>>     at
>>>>>>> org.red5.client.net.rtmpt.BaseRTMPTConnection.write(BaseRTMPTConnection.java:240)
>>>>>>> ~[red5-client-1.0.2-RC1.jar:1.0.2-RC1]
>>>>>>>     at org.red5.server.net.rtmp.Channel.write(Channel.java:138)
>>>>>>> ~[red5-server.jar:na]
>>>>>>>     at org.red5.server.net.rtmp.Channel.write(Channel.java:107)
>>>>>>> ~[red5-server.jar:na]
>>>>>>>     at
>>>>>>> org.red5.server.net.rtmp.RTMPConnection.invoke(RTMPConnection.java:953)
>>>>>>> ~[red5-server.jar:na]
>>>>>>>     at
>>>>>>> org.red5.server.net.rtmp.RTMPConnection.invoke(RTMPConnection.java:922)
>>>>>>> ~[red5-server.jar:na]
>>>>>>>     at
>>>>>>> org.red5.server.net.rtmp.RTMPConnection.invoke(RTMPConnection.java:977)
>>>>>>> ~[red5-server.jar:na]
>>>>>>>     at
>>>>>>> org.red5.client.net.rtmp.BaseRTMPClientHandler.invoke(BaseRTMPClientHandler.java:487)
>>>>>>> ~[red5-client-1.0.2-RC1.jar:1.0.2-RC1]
>>>>>>>     at
>>>>>>> org.apache.openmeetings.screen.webstart.CoreScreenShare.sendCursorStatus(CoreScreenShare.java:178)
>>>>>>> ~[openmeetings-screenshare-3.0.0-SNAPSHOT.jar:na]
>>>>>>>     at
>>>>>>> org.apache.openmeetings.screen.webstart.CaptureScreen.run(CaptureScreen.java:94)
>>>>>>> ~[openmeetings-screenshare-3.0.0-SNAPSHOT.jar:na]
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2013/8/1 Maxim Solodovnik <[email protected]>
>>>>>>>
>>>>>>>> Hello Sebastian,
>>>>>>>>
>>>>>>>> I'm currently trying to test RTMPT screensharing (the only one
>>>>>>>> working right now somehow) and found weird issue: If client trying to 
>>>>>>>> start
>>>>>>>> screensharing and is connected via RTMPT he/she has room_id == null in
>>>>>>>> Client.
>>>>>>>>
>>>>>>>> if RTMP is used room_id is set to the proper value.
>>>>>>>> The behavior above is observed in both: "SWF login then open the
>>>>>>>> room" and "Wicket enter the room".
>>>>>>>>
>>>>>>>> Can you please take a look at this issue?
>>>>>>>> Thanks in advance!
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> WBR
>>>>>>>> Maxim aka solomax
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Sebastian Wagner
>>>>>>> https://twitter.com/#!/dead_lock
>>>>>>> http://www.webbase-design.de
>>>>>>> http://www.wagner-sebastian.com
>>>>>>> [email protected]
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> WBR
>>>>>> Maxim aka solomax
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Sebastian Wagner
>>>>> https://twitter.com/#!/dead_lock
>>>>> http://www.webbase-design.de
>>>>> http://www.wagner-sebastian.com
>>>>> [email protected]
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> WBR
>>>> Maxim aka solomax
>>>>
>>>
>>>
>>>
>>> --
>>> Sebastian Wagner
>>> https://twitter.com/#!/dead_lock
>>> http://www.webbase-design.de
>>> http://www.wagner-sebastian.com
>>> [email protected]
>>>
>>
>>
>>
>> --
>> WBR
>> Maxim aka solomax
>>
>
>
>
> --
> WBR
> Maxim aka solomax
>



-- 
WBR
Maxim aka solomax

Reply via email to