Chris,
Thanks for your response.
I will setup logging in the Flex app.
Regards,
Lenny
The only item I see with RED5 is the following:
[DEBUG] 102062 SocketAcceptorIoProcessor-0.0:(
org.red5.io.amf.Input.readKeyValues ) property: code
[DEBUG] 102062 SocketAcceptorIoProcessor-0.0 : (
org.red5.io.object.Deserializer.deserialize ) Datatype: String
[DEBUG] 102062 SocketAcceptorIoProcessor-0.0:(
org.red5.io.amf.Input.readKeyValues ) val: NetConnection.Call.Failed
[DEBUG] 102062 SocketAcceptorIoProcessor-0.0 : (
org.red5.io.amf.Input.hasMoreProperties ) End of object: ? false
[DEBUG] 102062 SocketAcceptorIoProcessor-0.0:(
org.red5.io.amf.Input.hasMoreProperties ) End of object: ? false
[DEBUG] 102062 SocketAcceptorIoProcessor-0.0 : (
org.red5.io.amf.Input.readKeyValues ) property: level
[DEBUG] 102062 SocketAcceptorIoProcessor-0.0:(
org.red5.io.object.Deserializer.deserialize ) Datatype: String
[DEBUG] 102062 SocketAcceptorIoProcessor-0.0 : (
org.red5.io.amf.Input.readKeyValues ) val: error
[DEBUG] 102062 SocketAcceptorIoProcessor-0.0:(
org.red5.io.amf.Input.hasMoreProperties ) End of object: ? true
[DEBUG] 102062 SocketAcceptorIoProcessor-0.0:(
org.red5.io.amf.Input.hasMorePr operties ) End of object: ? true
[DEBUG] 102062 SocketAcceptorIoProcessor-0.0:(
org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decodeNotifyOrInvoke )
Num params: 1
[DEBUG] 102062 SocketAcceptorIoProcessor-0.0 : (
org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decodeNotifyOrInvoke ) >
0: {level=error, code=NetConnection.Call.Failed}
[DEBUG] 102062 SocketAcceptorIoProcessor-0.0:(
org.red5.server.Scope.getContext ) returning context
[DEBUG] 102140 pool-3-thread-3:(
org.red5.server.net.rtmp.BaseRTMPHandler.messageReceived ) Message recieved
[DEBUG] 102140 pool-3-thread-3:(
org.red5.server.net.rtmp.BaseRTMPHandler.messageReceived ) Stream Id:
ChannelId: 3, Timer: 437 (absolute), Size: 72, DateType: 20, StreamId: 0
On 5/22/07, Chris Allen <[EMAIL PROTECTED]> wrote:
I also would suggest tracing out the value of event.info in the public
function netStatusHandler().
Simply do a for in loop on that object and trace out all the elements.
What does that show?
On 5/22/07, Chris Allen <[EMAIL PROTECTED]> wrote:
> Lenny,
>
> Is Red5 logging any errors when you run this? I haven't had time yet
> to try it out, but from looking at it here in my email it looks
> correct.
>
> Let us know some more info and perhaps we can help.
>
> BTW, this line is not needed by Red5 as it supports AMF3, unlike FMS:
> nc.objectEncoding = ObjectEncoding.AMF0 ;
>
> -Chris
>
>
> On 5/20/07, Lenny Sorey <[EMAIL PROTECTED]> wrote:
> > Hello All,
> >
> > Got a question about a Flex/FMS tutorial I am trying to use as a
learning
> > guide in RED5.
> >
> > The example viewed is at :
> >
> > http://renaun.com/flex2/fms/VideoConferenceWDDJ/FlexVideoMain.html
> >
> >
> >
> > The code for this example is at:
> > http://renaun.com/flex2/fms/VideoConferenceWDDJ/srcview/
> >
> > Im not using the asc code as this is being called in my
application.java for
> > just connection.
> > I used this one because it appears to be pretty simple as far as a
straight
> > forward Shared Object example.
> >
> > Can someone take a look at this and give me some guidance? I am not
making
> > it to me Application.class file and am not connecting
> > to the client.
> >
> > Any responses are appreciated.
> >
> > Regards,
> >
> > Lenny
> >
> > I set up a new webapp for this example in red5 as videoconf
> >
> > I setup my application.java as follows:
> >
> >
******************************************************************************************************************************
> >
> >
> > package org.red5.server.webapp.videoconf;
> >
> > import org.apache.commons.logging.Log;
> > import org.apache.commons.logging.LogFactory;
> > import org.red5.server.adapter.ApplicationAdapter;
> > import org.red5.server.api.IBandwidthConfigure;
> > import org.red5.server.api.IConnection ;
> > import org.red5.server.api.IScope;
> > //import org.red5.server.api.stream.IServerStream;
> > import org.red5.server.api.stream.IStreamCapableConnection;
> > import
> > org.red5.server.api.stream.support.SimpleConnectionBWConfig
> > ;
> > import org.red5.server.api.service.IPendingServiceCallback;
> > import org.red5.server.api.service.ServiceUtils;
> > import org.red5.server.api.so.ISharedObject;
> >
> > public class Application extends ApplicationAdapter {
> >
> > protected static Log log = LogFactory.getLog(Application.class.getName
());
> >
> > private IScope appScope;
> > // private IServerStream serverStream;
> >
> > /** [EMAIL PROTECTED] */
> > @Override
> > public boolean appStart(IScope app) {
> > appScope = app;
> > //add users
> >
> > createSharedObject(appScope, "users_so", false);
> > log.info("@Application.java: appStart is called.");
> >
> > return true;
> > }
> >
> > /** [EMAIL PROTECTED] */
> > @Override
> > public boolean appConnect(IConnection conn, Object[] params) {
> > // Trigger calling of "onBWDone", required for some FLV players
> > measureBandwidth(conn);
> >
> >
> >
> > //IScope myScope = Red5.getConnectionLocal().getScope();
> >
> > ISharedObject users_so = getSharedObject(appScope, "users_so",
false);
> > log.debug("appConnect is called: "+getSharedObject(appScope,
"users_so",
> > false));
> >
> >
> > return super.appConnect(conn, params);
> > }
> >
> > /** [EMAIL PROTECTED] */
> > @Override
> > public void appDisconnect(IConnection conn) {
> >
> > super.appDisconnect (conn);
> > }
> > }
> >
> >
> > /*The Flex Client Side*/
> >
> > <?xml version="1.0" encoding="utf-8"?>
> > <!--
> > Copyright 2006 Renaun Erickson (http://renaun.com )
> >
> > @ignore
> >
> >
> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
> > xmlns="*"
> > initialize="haveCamera = ( Camera.getCamera() != null )"
> > layout="vertical" viewSourceURL="srcview/index.html">
> > <mx:Script>
> > <![CDATA[
> > import mx.collections.ArrayCollection;
> > import mx.controls.Alert ;
> >
> > [Bindable]
> > private var haveCamera:Boolean;
> >
> > [Bindable]
> > public var nc:NetConnection;
> >
> > public var users_so:SharedObject;
> > [Bindable]
> > public var dpUsers:ArrayCollection;
> >
> > /**
> > * This function creates the FMS connection and sets the Status
event
> > handler
> > */
> > public function createConnection():void
> > {
> > //Logger.debug( "MAIN:createConnection" );
> > // Check the user name length
> > if( txtName.text.length > 0 ) {
> > // Create Connection and setup Events
> > nc = new NetConnection();
> > nc.client = this;
> > nc.objectEncoding = ObjectEncoding.AMF0 ;
> > nc.addEventListener( NetStatusEvent.NET_STATUS, netStatusHandler
);
> > // A simple Identifier for the asc side
> > var identifier:String = txtName.text;
> > while( identifier.search( " " ) > 0 )
> > identifier = identifier.replace( " ", "_" );
> > nc.connect( "rtmp://10.2.0.10/videoconf", txtName.text,
identifier );
> > } else {
> > Alert.show( "Please provide a name for the video chat
connection!" );
> > }
> > }
> >
> > /**
> > * Waits for any status from the connection to FMS
> > */
> > public function netStatusHandler( event:NetStatusEvent ):void
> > {
> > //Logger.debug( "MAIN:connectionSuccess:Success" );
> > switch( event.info.code ) {
> > case "NetConnection.Connect.Success ":
> > clientID = nc.clientID;
> > // Connection succeeded now create components
> > connectComponents();
> > // Change to Video view
> > vsMain.selectedChild = pnlVideo;
> > break;
> > case "NetConnection.Connect.Rejected":
> > Alert.show( "The number of users has been limited for this demo,
> > please try again in a few minutes.", "Restricted Usage" );
> > break;
> > }
> >
> > }
> >
> > /**
> > * Method called to create the components
> > */
> > public function connectComponents():void
> > {
> > //Logger.debug( "MAIN:connectComponents" );
> > // Simple User shared object and event handling
> > SharedObject.defaultObjectEncoding =
> > flash.net.ObjectEncoding.AMF0;
> > users_so = SharedObject.getRemote("users_so", nc.uri, false);
> > users_so.addEventListener( SyncEvent.SYNC, usersSyncHandler );
> > users_so.connect( nc );
> > }
> >
> > /**
> > * Listens for any change to the users shared object
> > */
> > public function usersSyncHandler( event:SyncEvent ):void
> > {
> > //Logger.debug( "MAIN:usersSyncHandler" + event.target.data );
> > var results:Object = event.target.data;
> > var usersArray:Array = new Array();
> > for( var a:String in results ) {
> > var obj:Object = new Object();
> > obj.name = results[ a ];
> > obj.identifier = a;
> > usersArray.push( obj );
> > }
> > dpUsers = new ArrayCollection( usersArray );
> > }
> >
> > /**
> > * Closes connections and handles the logout
> > */
> > public function logout():void
> > {
> > //Logger.debug( "MAIN:connectComponents" );
> > users_so.close();
> > nc.close();
> > dpUsers = null;
> > users_so = null;
> > nc = null;
> > vsMain.selectedChild = pnlLogin;
> > }
> >
> > ]]>
> > </mx:Script>
> >
> > <mx:ViewStack
> > id="vsMain"
> > width="100%" height="100%">
> > <!-- Login Panel -->
> > <mx:Panel
> > id="pnlLogin"
> > title="Red5, Flex and FMS Video Conference Demo">
> > <mx:Form>
> > <mx:FormItem label="Name:">
> > <mx:TextInput
> > id="txtName"
> > enabled="{ haveCamera }" />
> > </mx:FormItem>
> > <mx:Button
> > label="Submit"
> > click="createConnection()"
> > enabled="{ haveCamera }" />
> > <mx:Label text="{ ( haveCamera ) ? '':'Now camera is found!' }" />
> > </mx:Form>
> > </mx:Panel>
> > <!-- Video Panel -->
> > <mx:Panel
> > id="pnlVideo"
> > width="100%" height="100%"
> > title="Welcome { txtName.text }!"
> > layout="vertical">
> >
> > <mx:Tile
> > height="100%" width="100%">
> > <mx:Repeater
> > id="rpUsers"
> > dataProvider="{ dpUsers }">
> > <VideoPod
> > nc="{ nc }"
> > isSender="{ rpUsers.currentItem.name == txtName.text }"
> > userItem="{ rpUsers.currentItem }" />
> > </mx:Repeater>
> > </mx:Tile>
> > <mx:Label
> > width="100%"
> > text="Video Quality is set really low to not use up all my
bandwidth!"
> > color="0xFF0000" />
> > <mx:ControlBar>
> > <mx:Button
> > label="Logout"
> > click="logout()"/>
> > </mx:ControlBar>
> > </mx:Panel>
> >
> > </mx:ViewStack>
> >
> > </mx:Application>
> >
> >
> > /*End Flex client side */
> > _______________________________________________
> > 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
_______________________________________________
Red5 mailing list
[email protected]
http://osflash.org/mailman/listinfo/red5_osflash.org