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のチャットになります。

HTML5飯