Skip navigation
Currently Being Moderated

Moving from Cirrus to Flash Media Server Enterprise 4.5.1

Feb 6, 2012 10:52 AM

Tags: #fms #cirrus #to

Hi:

 

So, I have my realtime audio/video widget application and it works fine through Cirrus.  When it connects through Cirrus it creates uses NetConnection.connect(<cirrus url>, developerkey) and the

call between user A and user B works fine.

 

I am now trying to use my flash media server enterprise 4.5.1 provider: Influxis.  They gave me a test account.  When I connect using RTMFP, both clients connect and exchange their peer

ids (still through my remove web service), but then when user A attempts to call user B, I get a NetConnection.publish fail message or something of the sort.

 

I am thinking that my problem is in my main.asc file in my FMS account.

 

I don't know what to put in their in order for user A and user B to talk.  my NetConnection.connect() method is just NetConnection.connect(<my account url at Influxis>);

 

I feel I shouldn't have to put anything in my main.asc file for this to work since each peer talks to the other directly.....am I wrong on this one?

 

I can't find any migration information to go from Cirrus to FMS with RTMFP support.  I really want to be able to connect with RTMFP first and then if it fails then connect with RTMP.

 

This article, http://www.adobe.com/devnet/flashmediaserver/articles/real-time-collab oration.html is dated December 2010, so I am not sure it is the newest in addressing this issue, although I may just set this up and see how it works as a start.

 

Any ideas would be appreciated.

 

Thanks,

 

Dan

 
Replies
  • Currently Being Moderated
    Feb 6, 2012 11:17 AM   in reply to danw11

    i'm not familiar with Influxis' offering. however, if you're publishing on a NetStream that was created as

     

      var ns:NetStream = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);

       ns.publish("streamname");

     

    then, assuming netConnection is an RTMFP NetConnection, the server has nothing to do with the publishing part and there's no way for it to keep you from publishing.

     

    the Cirrus servers silently ignore any client-server NetStreams that are created. if you are creating any client-server NetStreams with the Influxis server and publishing on it, then it's very likely the Influxis server is sending you an error that you wouldn't've seen with the Cirrus servers (the Cirrus servers are not FMS).

     
    |
    Mark as:
  • Currently Being Moderated
    Feb 6, 2012 1:04 PM   in reply to danw11

    if you have an RTMFP connection to a server, then there is nothing the server should be able to do to keep you from making a DIRECT_CONNECTIONS NetStream and saying "publish" on it. the server is not involved.

     

    are you sure that your NetConnection is still open when you issue your publish()? VideoPhoneLabs uses the Cirrus "relay" server method, which you must supply yourself on FMS. perhaps FMS is closing the NetConnection on receipt of this unknown command or something.

     
    |
    Mark as:
  • Currently Being Moderated
    Feb 6, 2012 3:06 PM   in reply to danw11
     
    |
    Mark as:
  • Currently Being Moderated
    Feb 7, 2012 8:37 AM   in reply to danw11

    i believe there are at least two pages of comments on Jozsef's original article, some of which concern getting VideoPhoneLabs to work with FMS.

     
    |
    Mark as:
  • Currently Being Moderated
    Feb 7, 2012 10:29 AM   in reply to danw11

    Jozsef's article is here:

     

       http://www.adobe.com/devnet/flashplayer/articles/rtmfp_cirrus_app.html

     

    go to the bottom of the page (where the comments are), and click the "2" to go to the second page. then search for "FMS" in the comments section. there are numerous comments and replies from Jozsef regarding getting VideoPhoneLabs to work with FMS.

     
    |
    Mark as:
  • Currently Being Moderated
    Feb 8, 2012 1:31 PM   in reply to danw11

    Dan,

     

    I ran into this issue in the past and managed to solve it. Create a new main.asc and open it with a text editor of your choice. Then paste in this:

     

    Client.prototype.relay = function( id, command, data )

    {

         var i;

         for( i = 0; i < application.clients.length; i++ )

         {

              if( application.clients[i].farID == id )

              {

                   application.clients[i].call( "onRelay", null, this.farID, command, data );

              }else{

                   trace( "User not found: " + id );

              }

         }

    }

     

    I'm not sure if it still works it has been a while but give it a go and let me know.

    -Joebear

     
    |
    Mark as:
  • Currently Being Moderated
    Feb 9, 2012 9:07 AM   in reply to danw11

    Hi Dan,

    Great! I'm glad you got that working. If you ever run into any issues feel free to email Influxis Support the team is always standing by and ready to help

    -Joebear

     
    |
    Mark as:
  • Currently Being Moderated
    Feb 18, 2012 9:11 AM   in reply to Joebear123

    The provided solution allows to establish RTMFP connections between peers, but some functionalities still not work such as Object Replication. Does anyone have a hint on how to debug calls to the RTMFP server to see what methods are being triggered and not found when using Object Replication or any documentation that might shine some light on the problem. I believe Object Replication has some more server specific logic besides the Client.Relay function. NetGroup join works OK, but peer pairs do not connect in a NetGroup.

     

    Thanks.

     
    |
    Mark as:
  • Currently Being Moderated
    Feb 18, 2012 10:38 AM   in reply to david.garcia.garcia

    i assume that you're using a group specification string, and not a bare peer ID, when making the new NetGroup (otherwise you wouldn't get the NetGroup.Connect.Success). and i assume you've set GroupSpecifier.serverChannelEnabled=true to get the server to bootstrap your group, or it wouldn't work with Cirrus.

     

    other than peer introductions and group bootstrap, the server is not involved in any way with Object Replication.  and note the Client.relay function is only necessary for compatibility with applications written for Cirrus; it's not a standard thing.

     

    there is a setting in FMS for whether it will do group bootstrapping completely automatically or if it will be percolated up to server-side script. if your FMS isn't doing automatic group bootstrap for clients that have set serverChannelEnabled=true for their groups, then you might have the server set to not-totally-automatic mode. i'm not 100% sure of the settings for that -- i'm not an FMS expert. the best place to ask is the FMS forums.  i *believe* the setting is in the Application.xml file, and in the "GroupControl" section, there should be a setting that should be

     

      <GroupControl>

          <JoinLeaveEvents mode="None"/>

       </GroupControl>

     

    the "None" setting should cause the server to handle bootstrapping automatically. other settings send events to server-side script.  i think at least one of the sample applications that comes with FMS may handle those events, but i don't know for sure. again, asking in FMS forums should yield better results.

     
    |
    Mark as:
  • Currently Being Moderated
    Feb 28, 2012 8:14 AM   in reply to Michael Thornburgh

    Thank you for the hint. I came across the FMS configuration PDF that explains in detail the different options that can be configured in the application.xml file. Nevertheless, it still will not work. The NetGroup connects succesfully but connections between peers in a group are not established (no NeighbourConnect Event) even thoug all peers correctly see the Connect.Success event on the NetGroup. The application perfectly works when using the Adobe developer Server so it must be some configuration issue with my FMS server.

     
    |
    Mark as:
  • Currently Being Moderated
    Feb 29, 2012 12:03 AM   in reply to david.garcia.garcia

    are your clients connecting to the same FMS application name/instance on the same FMS?  are you sure that each client is joining with *exactly* the same groupspec?

     
    |
    Mark as:

More Like This

  • Retrieving data ...

Bookmarked By (1)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points