Tag RTMFP
Adobe Stratus (beta)
Met de lancering van de Adobe Flash Player 10, biedt deze nu ook ondersteuning voor een nieuw protocol dat door Adobe zal ingevoerd worden namelijk: rtmfp.
RTMFP, of voluit: Real Time Media Flow Protocol, is een nieuw protocol dat developers in staat stelt peer 2 peer communicatie op te zetten tussen 2 (of meerdere) flash player instanties.
Dit heeft vooral als voordeel dat de belasting op de server heel minimaal blijft, het verkeer gebeurt namelijk enkel tussen de clients. Voor een volledig overzicht van wat de voor-en nadelen kan je best volgende PDF lezen.
Nu wat heeft dit met ‘Stratus’ te maken? Wel Stratus is een service, die zoals de titel doet vermoeden, voorlopig in beta is. Dit is een door Adobe gehoste service die via RTMFP werkt. Dus iedereen die een Adobe ID heeft kan opteren voor een Developer Key en zo de functionaliteit testen.
Op Adobe Labs staat verder informatie over Adobe Stratus.
Het voorbeeld dat door Adobe meegeleverd is vond ik zeer onduidelijk dus voelde ik me verplicht een eenvoudige test/demo applicatie te maken.
De applicatie is een chat applicatie die de standaard flow illustreert maar daarnaast ook de mogelijkheid bezit om tot een maximum van vijf deelnemers op te nemen. Om te connecteren dient men twee instanties van de link to openen en deze door middel van de unieke ID die gegenereerd wordt bij het opstarten van de app met elkaar te laten communiceren (copy paste de unieke id van een client in het “Connect to client” input veld van de andere client).
Dit voorbeeld heb ik gemaakt in Flex (view-source.enabled = true) wat volgens mij de workflow een beetje vereenvoudigd. Het voorbeeld is voorzien van commentaar zodat het duidelijk wordt welke stappen allemaal moet gebeuren.
Chat app
Opmerkingen:
De reden waarom de applicatie maar een totaal van 5 clients aankan is omdat de NetConnection.maxPeerConnections default op 8 staat, deze 8 zijn als volgt gedefinieerd:
- 1 NetStream die luisterd naar inkomende connecties
- 4 NetStream objecten die luisteren naar inkomende boodschappen van de andere 4 clients
- 1 NetStream die verantwoordelijk is voor uitgaande boodschappen
- 1 NetStream die wordt gebruikt om te connecteren op een andere client
Dit heeft een totaal van 7 streams echter als de 6e client probeert te connecteren creëert de andere client nog een Stream waarna hij zijn maximum aan streams heeft bereikt en dus de applicatie breekt.
Ook niet te vergeten voor RTMP te laten werken dient je netwerk uitgaand UDP verkeer toe te laten.
Niet te vergeten dat dit voorbeeld een puur technische test is op basis van de Stratus service. Feedback is welkom!
