Tom Krcha's FlashRealtime

Hey amigo! These are my notes. I'm Platform Evangelist with Adobe.


Seminar Recording: Advanced P2P - Object Replication

August 30th, 2010

The recording of seminar I did on Friday 27th 2010.

It includes information mostly about Object Replication and how to start with it. I also explain my P2P VoD project.

Check it out here (42 min.)
http://my.adobe.acrobat.com/p41024225/
advanced-p2p-connect

Local Flash Peer-to-Peer Communication over LAN (without Stratus)

August 27th, 2010

native-ip-multicast-small Some of you guys were probably wondering how to establish P2P connections in the local network (LAN) without Stratus. Yes. It’s possible. Using native IP-only multicast. Let’s build a simple chat with Posting. Adding Multicast broadcast is just a simple next step which I am sure you can accomplish by yourself with few hints from my article about Multicast

Open an IP Multicast connection. This can be done by specifying connection string as “rtmpf:”. Note, that this technique cannot be used for one-to-one communication. So no DIRECT_CONNECTIONS with NetStream, but you can do all RTMFP Group operations.

netConnection.connect("rtmfp:");

Read the rest of this entry »

Multicast Explained in Flash 10.1 P2P

July 1st, 2010

Multicast is one of the features of Flash Player 10.1 and it enables you to distribute NetStreams across the peer-to-peer mesh. It can be audio, video or even pure data stream (AMF3) - the data stream can be very handy for games, it’s much better for such purpose (like sending realtime positions, directions) than using Posting as Posting is more optimized for large number of senders to send something - like chat, status change and so on.

Difference between Unicast and Multicast

Unicast
Unicast simply delivers streams from a server to n clients. For this purpose you can use Flash Media Server and TCP protocols such as RTMP/T/S/E or HTTP protocol. Unicast also costs you a lot of resources -> 1 MBps stream delivered to 1000 clients means 1 GB upstream from server - which is CPU demanding and network transit is also huge.
unicast2

Read the rest of this entry »

Multicast Streaming in Flash Player 10.1 Tutorial

June 30th, 2010

Adobe Developer Connection presents:
Multicast Streaming in Flash Player 10.1

This video-tutorial shows how to build a simple Broadcaster/Receiver system with P2P Multicast in Flash Player 10.1 using NetStream and Camera classes.

Link to Adobe TV site

Download sample files

Learn more: Read Multicast Explained in Flash Player 10.1
Read the rest of this entry »

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.