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
