P2P GroupSpecifier Class Explained In Details Part 1
March 11th, 2010
If you’ve tried my tutorial on creating a simple chat using P2P NetGroup in Flash Player 10.1, you might have been wondering what the other parameters you can set up mean.
GroupSpecifier is a very powerful class and ASDocs are good resource to look in, but I thought I’d write few more words on this topic since it’s easier to understand with a little more explanation.
postingEnabled and multicastEnabled
These are self-explanatory. Just a little note: the difference between Multicast and Posting is simply in the overhead used during their management. Posting should be used when you have lots of senders sending relatively little data (like Chat). Multicast when you have fewer senders sending lots of data (Video, Chat).
peerToPeerDisabled
Why should I disable P2P when I am building a P2P application? Obvious question. This one is for IP Multicast.
Application-Level-Multicast (so called P2P Multicast) is multicast established over peers.
Native IP Multicast is multicast enabled in the network - it must be supported by routers and the network itself.
Fusion is Application-Level-Multicast and Native IP Multicast used together.
So, when you disable P2P by saying peerToPeerDisabled=true
, your app will use only Native IP Multicast, which is more efficient, but works mostly only in closed networks (like a company network).
serverChannelEnabled
Opens supporting functions from the server. In the basic scenario it enables auto-bootstrapping. Bootstrapping in this context means adding peers to the group. You can do this manually by calling the addBootstrapPeer
function or setting serverChannelEnabled=true
to make it automatic. In the P2P Chat example it basically takes care of adding peers to a group and establishes communication between them.
groupspecWithAuthorizations and groupspecWithoutAuthorizations
Difference? Security. If you set a posting or multicast password, the one “with” can post or multicast, the one “without” is receive-only.
Remember - GroupSpecifier is technically a String combined of properties and the name. If you change a property you will be in a different group.
More to come soon.