跳到主要內容

FlashP2P Stratus

呼, 總於等到FlashP2P技術, 這次的代號為:Stratus
先來介紹一下發展史好了

由圖表可以知道
在Flash8,9時代, 二個使用者要互相溝通, 一定要透過伺服器來當中繼角色
A發給伺服器, 再由伺服器發給B(或其他人), 走的是rtmp協定
Flash10, P2P走的是rtmfp協定, 當然一開始還是要先跟伺服器連線一下
之後就是A直接對B啦, 省去伺服器當中間人的角色
Flash10.1 P2P可以走Group的型式, A傳給B, B在傳給C , 這樣一路的傳下去
想像一下以後如果youtube走的是這樣的模式, 高畫質的影片就離我們更近了
奶老師製作的Demo, 雙人劃筆。
http://milkmidi.googlepages.com/p2p.html





教學影片:http://www.flashrealtime.com/tuts/p2p-in-flash.html
教學網站:http://www.flashrealtime.com/basics-of-p2p-in-flash/
Adobe Stratus介紹
http://labs.adobe.com/technologies/stratus/
想要自行開發的話,可以用先adobe提供的開發者主機
在上方網址的最下面, Sign up for a Stratus beta developer key
申請一組Key就可以開發。
如果要用到Group功能的話,需要將Player升級成10.1才能用喔
原始碼分享

說明一下原理
一開始需要透過NetConnection跟伺服器連線一下。
接著伺服器會回傳你一個key值, 這個值就是這次連線時的唯一值
另一方就是要透過這個值和你做連線用
而開發時,需要二個NetStream
一個用來發送,一個用來接收
其他的寫法就跟寫FMS差不多。
SourceCodeDownload

留言

jerry寫道…
這麼先進的技術,老師也有研究到,強勁~
那我也來研究一下^^
匿名表示…
請問在 P2PVO.as裡面找不到PencilAssetMC,這個事什麼
milkmidi寫道…
那個是放在swc裡的元件,
使用FlashCS4或是Flex或是FlashDevelop才能compile
匿名表示…
謝謝,我忘記導入swc檔案....^_^
David表示…
請教
若是我想要把一個displayobject送到遠端,
遠端接收到後即時播放,

應該要怎麼撰寫呢?

謝謝
milkmidi寫道…
指的傳送displayobject是什麼意思呢
David表示…
是這樣的,我希望遠端可以和本地一起看到 同一個displayobject的畫面

這應該要怎麼處理呢?

謝謝!!!!
milkmidi寫道…
可以使用BitmapData,先畫自已的畫面,然後丟給遠方來呈現
David表示…
謝謝!!!!
我試著去做看看

不過再請教

如果我想要遠端一直同步和本地觀看到displayObject(比如說當中物件的移動,縮放....等等),是不是就要每個影格就draw一次再丟出去呢?

再次謝謝!
milkmidi寫道…
如果是想要像多人連線遊戲那樣的話
可以考慮只要傳物件的屬性就好
比如我做了點擊動作,就把點擊動作傳給對方
其他的運算就交給flash本身就好
匿名表示…
想請教一下老師...
1.RTMP與RTMFP可以共存做P2P的功能嗎?在FMS Load balance底下如何做到rtmp& rtmpf並存使用.
2.單純RTMFP環境下超過150人連接.品質就開始模糊了.找不到原因.


不知道老師有沒有這方面的經驗. ^^