RTMFPを使ってみる
2009年06月04日 - hidaka
androidとfujirockで頭いっぱいなhidakaです。
ステージ振りも発表されましたねー。
久しぶりにFlashネタでいってみます。RTMFPです。RTMPじゃないよ、いきなり言われて区別つきます?
RTMFPはFlashでP2Pができちゃうアレです。去年の後半に発表されたやつ。
ネット上のサンプルがFlexのものばかりで、純FlasherとしてはさみしいのでFlashで
やってみました。ちゃんとP2Pでチャットできますよ。しかもサーバ用意しないで
Flashだけで試せます。
まずはここからdeveloper keyをもらいます。
そしてまずは接続。普通のFMSと一緒で
var rtmfp_sv:String="rtmfp://stratus.adobe.com";
var Dev_key:String="取得したdeveloper key";
var PUBLISH_NAME:String="rtmfp_test";
var netConnection:NetConnection;
var sendStream:NetStream;
var recvStream:NetStream;
netConnection = new NetConnection();
netConnection.addEventListener(NetStatusEvent.NET_STATUS,netConnectionHandler);
netConnection.connect(rtmfp_sv + "/" + Dev_key);
function netConnectionHandler(e:NetStatusEvent):void {
if (e.info.code=="NetConnection.Connect.Success") {
SendStream(netConnection.nearID);
myname_txt.text="自分のID"+netConnection.nearID;
}
}
こんな感じ。connect()先も似てますね。
stratus.adobe.comにまず接続成功すると、netConnection.nearIDという自分の識別キーをもらえます。その後で
function SendStream(myID:String):void {
sendStream=new NetStream(netConnection,NetStream.DIRECT_CONNECTIONS);
sendStream.addEventListener(NetStatusEvent.NET_STATUS, sendStreamHandler);
sendStream.publish(PUBLISH_NAME);
}
NetStream.DIRECT_CONNECTIONSとしてpublish。ここはおまじない的に。
チャットしたい相手側は、相手の識別キーをもらったらnew NetStream(netConnection,相手のID);として相手の送信を受信します。送信側にはonPeerConnectのイベントで受信してきた相手のIDを取得できるので、こちらからもnew NetStream(netConnection,相手のID);として受信。これで送受信の準備完了です。
あとはFMSと同じようにNetStreamにコマンド名と文字列を送ることで、P2Pのチャットになります。
- AfterEffects
- AIR
- android
- Arduino
- AS2
- AS3
- as3
- BitmapData
- CHECKMATE
- crossdomain
- CS4
- Date
- DisplacementMapFilter
- Event
- event
- ExternalInterface
- FileReference
- FireBug
- FireFox
- Flash Lite
- FlashDevelop
- FlashPlayer10
- flash時計
- Flex
- Font
- GoogleMapsAPI
- INFINITY TANK BATTLE
- JSFL
- JSON
- Mobile
- mxp
- PaperVision3D
- Particle
- Progression
- Sound
- TextField
- Tips
- tool
- trace
- wonderfl
- Wonderfl
- xml
- アニメーション
- サンプルコード
- タイムライン
- デバッガ
- バグ
- フレーム
- ブログパーツ
- 爆速







