1 person found this helpful
Cirrus doesn't respond to any commands as you might think of them. technically it responds to "connect" (issued when you use NetConnection.connect() to Cirrus) and "setPeerInfo" (issued automatically by Flash Player after a successful connect to an RTMFP server). but all NetConnection.call() commands are ignored by Cirrus.
at this time, only reference documentation exists for the client-side classes you use for client-server and P2P communication using RTMFP. take a look at NetConnection, NetStream, NetGroup, and GroupSpecifier.
a number of tutorials and examples exist. there is one linked to from the main Cirrus page written by Jozsef Vass:
and another by Jozsef:
Tom Krcha has written numerous articles about RTMFP on his blog at
this thread has some links:
and this thread, where i posted links to materials i presented at MAX 2009 and 2010:
Thank you Michael. I will begin my research
Can you please clarify a point?
With RTMFP, is it possible to send a stream (let's say one-to-many) without having to use the peerID and receivers to know the peerID? Basically just using Cirrus and the same group name for rendez-vous and then streaming from one client to the others using "publish" and "play". It doesn't seem to work for me.
About exchange of PeerID, what would be your recommendation approach to do so?
I am focusing on AIR for Android development so, right on, I can IM the peerID to another peer but, of course, this assumes that I know them already.
we discussed this privately, but for the other folks reading this thread: you need to set GroupSpecifier.serverChannelEnabled=true to have the server perform automatic group bootstrapping for your group members. otherwise, for N peers that are all trying to be in group X, you'll have N 1-member disjoint groups each in their own group X. the alternative is to write your own group bootstrap/membership tracking service to do the same thing; however, i think it's much more convenient to just use the automatic group bootstrap service on Cirrus (or the corresponding function on FMS if that's what you're using).
whenever you join a group, you start out in the "i'm all alone in my group" state. think of it like bubbles. when bubbles touch, they merge together into a single larger bubble. but you need to touch that other bubble in at least one spot. both Cirrus and FMS can help out with that.
for finding/exchanging peerIDs, when using Cirrus you would typically run a web service somewhere to translate (for example) names to peerIDs, and provide a registration service to set the current peerID for a name. the VideoPhoneLabs example on the Cirrus labs page includes such a simple web service written in Python and using SQLite. if you're using FMS then you can just whip up some SSAS.