SlideShare a Scribd company logo
1 of 19
インタラクションデザイン勉強会



サーバレスモードRTMFP

      2012.1.13
        @itoz
http://www.imjp.co.jp/nenga/2012/
RTMFP?
  RTMFP は P2P 型、UDP ベース


[1] Stratus 2 または FMS のようなサーバに接続して利用。
[2] IP マルチキャスト可能な範囲(同一LAN内とか)であれ
ばサーバレスで P2P 通信できる(サーバレスモード)


参考
Flash Player 10.1 と RTMFP - akihiro kamijo
どうやってつなぐの?
[1] NetConnection 作成
_nc = new NetConnection();

_nc.addEventListener(NetStatusEvent.NET_STATUS,
connectionStatusHandler);

_nc.connect("rtmfp:");

function connectionStatusHandler(event : NetStatusEvent) : void{

        switch (event.info.code) {

            case "NetConnection.Connect.Success":

              // 接続確立された [2]へ

              break;

        }

}
[2] GroupSpecifierを作成
_gs = new GroupSpecifier( グループ名(任意) );

_gs.postingEnabled = true;

_gs.routingEnabled = true;

_gs.multicastEnabled = true;

_gs.ipMulticastMemberUpdatesEnabled = true;

_gs.objectReplicationEnabled = true;

_gs.addIPMulticastAddress("IPアドレス");//
225.225.0.1:30303 など

//Booleanプロパティのいくつは理解してない。。
[3] NetGroupを作成
※[1][2]が必要

_ng = new NetGroup(nc,
_gs.groupspecWithAuthorizations());



//イベントは全て、NetGroupのNetStatusEventをリス
ナーし、event.info.codeで判断する。(後述)
_ng.addEventListener(NetStatusEvent.NET_STATUS,
netGroopStatusHandler);
他のpeerにデータ送信したい

    NetGropu.post()

 NetGroup.sendToNearest()

NetGroup.sendToNeighbor()

           etc...
他のpeerにデータ送信したい。
[1]グループ全員に通知したい:NetGropu.post()

var msgObj = { myData : hoge };

msgObj.sender =
_ng.convertPeerIDToGroupAddress(_nc.nearID);

_ng.post(msgObj)



▼受信イベント

NetStatusEvent.info.code = NetGroup.Posting.Notify
※前回と同じ内容のObjをpostしても送信されない。

※その対策としてObj["data"]= new Data()などをくっつけて毎回違う値をpostする
他のpeerにデータ送信したい。
[2] 特定のPeerに送信したい :NetGroup.sendToNearest()

var peerId :String = "送信先のPeerID"

var gAddres:String = convertPeerIDToGroupAddress(peerId);

_ng.sendToNearest(msgObj,gAddres) ;



▼受信イベント

NetStatusEvent.info.code = NetGroup.SendTo.Notify
他のpeerにデータ送信したい。
[3] 隣のpeerに通知したい: NetGroup.sendToNeighbor()

_ng.sendToNeighbor(msgObj,sendMode)

//sendModeでどちらまわりのおとなりさんに送るか指定できる。

※NetGroupSendMode.NEXT_INCREASING

※NetGroupSendMode.NEXT_DECREASING




▼受信イベント

NetStatusEvent.info.code = NetGroup.SendTo.Notify

※ sendToNearestと同じイベント
他のpeerにデータ送信したい。
※その他、sendToAllNeighbors() メソッドな
ど。(未調査)
他のpeerからのデータを受信したい。
function netGroopStatusHandler(event : NetStatusEvent) : void{

       switch (event.info.code) {

          case "NetGroup.Neighbor.Connect":

           // ピア接続された ( event.info.peerID )

              break;

          case "NetGroup.Neighbor.Disconnect":

             // ピアクローズされた ( event.info.peerID )

             break;

          case "NetGroup.Posting.Notify":

             // グループ全員宛の通知を受け取った ( event.info.message )

             break;

          case "NetGroup.SendTo.Notify":

             // 直メッセージ受信した( event.info.message )

             break;

  }}
他のpeerの関数を呼びたい。

[1] 送信側でオブジェクトに 任意のキーで、関数
名を指定し送信。

ex)

msgObj["handlerName"] = "myFunc1";
他のpeerの関数を呼びたい。
[2] 受信側でオブジェクトとして関数定義しておく
ex)
var client:Object = {
      "myFunc1" :function(messageObj:Object):void{
               trace("myFunc1");
           }
      ,"myFunc2" : function(messageObj:Object):void{
           trace("myFunc2");
       }
}
他のpeerの関数を呼びたい。
[3]受信側で関数を参照し実行



client[msgObj.handlerName]();



など




これで特定の関数を呼べる。
出典
librtmfp SparkProject
http://www.libspark.org/wiki/superbacker/librtmfp



LLC DigiFie » Flex勉強会 第156回@熊本+RIA セミナーへ行ってきました
http://www.digifie.jp/blog/archives/490


sendToNeighbor

http://www.flashrealtime.com/directed-routing-explained-flash-p2p/


Flash Player 10.1 と RTMFP - akihiro kamijo
http://cuaoar.jp/2010/03/flash-player-101-rtmfp.html



Adobe Flash Media Server 4.5 * RTMFP グループ
http://help.adobe.com/ja_JP/flashmediaserver/devguide/
WSa4cb07693d123884520b86f312a354ba36d-7ffe.html#WSf888d222081ca19c46a084fa12a8413080e-80
00
GitHub https://github.com/itoz/itoz.jp_RTMFP-serverless-
thank you!

More Related Content

What's hot

【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!
【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!
【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!
Keigo Ando
 
Precise garbage collection for c
Precise garbage collection for cPrecise garbage collection for c
Precise garbage collection for c
miura1729
 
Zabbix meeting 20101218_02-2 (Takanori Suzuki)
Zabbix meeting 20101218_02-2 (Takanori Suzuki)Zabbix meeting 20101218_02-2 (Takanori Suzuki)
Zabbix meeting 20101218_02-2 (Takanori Suzuki)
takanori suzuki
 
ラボユース最終成果報告会(Web公開版)
ラボユース最終成果報告会(Web公開版)ラボユース最終成果報告会(Web公開版)
ラボユース最終成果報告会(Web公開版)
Shinichi Awamoto
 
サーバー実装いろいろ
サーバー実装いろいろサーバー実装いろいろ
サーバー実装いろいろ
kjwtnb
 
Html5, Web Applications 2
Html5, Web Applications 2Html5, Web Applications 2
Html5, Web Applications 2
totty jp
 

What's hot (19)

【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!
【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!
【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!
 
NanoStrand
NanoStrandNanoStrand
NanoStrand
 
Swiftでブロックチェーンを実装する
Swiftでブロックチェーンを実装するSwiftでブロックチェーンを実装する
Swiftでブロックチェーンを実装する
 
GContractsの基礎
GContractsの基礎GContractsの基礎
GContractsの基礎
 
Precise garbage collection for c
Precise garbage collection for cPrecise garbage collection for c
Precise garbage collection for c
 
Beam利用アプリ紹介+関連技術ネタ
Beam利用アプリ紹介+関連技術ネタBeam利用アプリ紹介+関連技術ネタ
Beam利用アプリ紹介+関連技術ネタ
 
Nko
NkoNko
Nko
 
ちょっと便利なGnome NetworkManager のscript
ちょっと便利なGnome NetworkManager のscriptちょっと便利なGnome NetworkManager のscript
ちょっと便利なGnome NetworkManager のscript
 
URIやTEXTをBEAMするアプリを作ったよ!
URIやTEXTをBEAMするアプリを作ったよ!URIやTEXTをBEAMするアプリを作ったよ!
URIやTEXTをBEAMするアプリを作ったよ!
 
Zabbix meeting 20101218_02-2 (Takanori Suzuki)
Zabbix meeting 20101218_02-2 (Takanori Suzuki)Zabbix meeting 20101218_02-2 (Takanori Suzuki)
Zabbix meeting 20101218_02-2 (Takanori Suzuki)
 
ラボユース最終成果報告会(Web公開版)
ラボユース最終成果報告会(Web公開版)ラボユース最終成果報告会(Web公開版)
ラボユース最終成果報告会(Web公開版)
 
170916 nem introduction
170916 nem introduction170916 nem introduction
170916 nem introduction
 
第8回KPF発表資料
第8回KPF発表資料第8回KPF発表資料
第8回KPF発表資料
 
サーバー実装いろいろ
サーバー実装いろいろサーバー実装いろいろ
サーバー実装いろいろ
 
Lt 111119
Lt 111119Lt 111119
Lt 111119
 
Groovyでjson
GroovyでjsonGroovyでjson
Groovyでjson
 
Tide - SmalltalkでSPA
Tide - SmalltalkでSPATide - SmalltalkでSPA
Tide - SmalltalkでSPA
 
第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
 
Html5, Web Applications 2
Html5, Web Applications 2Html5, Web Applications 2
Html5, Web Applications 2
 

Viewers also liked

Open im vol16_lt_cnomiya_next_thing
Open im vol16_lt_cnomiya_next_thingOpen im vol16_lt_cnomiya_next_thing
Open im vol16_lt_cnomiya_next_thing
NTTDATA INTRAMART
 
álbum de fotografías -25 años-
álbum de fotografías -25 años-álbum de fotografías -25 años-
álbum de fotografías -25 años-
gustavo145
 
исследование рынка аутсорсинговых контактных центров украины
исследование рынка аутсорсинговых контактных центров украиныисследование рынка аутсорсинговых контактных центров украины
исследование рынка аутсорсинговых контактных центров украины
Sergey Onenko
 
Matthew Brown's Visual resume
Matthew Brown's Visual resumeMatthew Brown's Visual resume
Matthew Brown's Visual resume
Matt Brown
 
Dawn lifestyle expo 2011
Dawn lifestyle expo 2011Dawn lifestyle expo 2011
Dawn lifestyle expo 2011
Zarak Khawaja
 

Viewers also liked (20)

How to make P2P apps without a server? RTFM... no RTMFP.
How to make P2P apps without a server? RTFM... no RTMFP.How to make P2P apps without a server? RTFM... no RTMFP.
How to make P2P apps without a server? RTFM... no RTMFP.
 
Fotonaturaleza
FotonaturalezaFotonaturaleza
Fotonaturaleza
 
Open im vol16_lt_cnomiya_next_thing
Open im vol16_lt_cnomiya_next_thingOpen im vol16_lt_cnomiya_next_thing
Open im vol16_lt_cnomiya_next_thing
 
álbum de fotografías -25 años-
álbum de fotografías -25 años-álbum de fotografías -25 años-
álbum de fotografías -25 años-
 
BOM Team Prosperity
BOM Team ProsperityBOM Team Prosperity
BOM Team Prosperity
 
Yourprezi
YourpreziYourprezi
Yourprezi
 
CIIS
CIIS CIIS
CIIS
 
Getting started with Big Data
Getting started with Big DataGetting started with Big Data
Getting started with Big Data
 
Agile2015 short paper presentation: Development of Complex Software with Agil...
Agile2015 short paper presentation: Development of Complex Software with Agil...Agile2015 short paper presentation: Development of Complex Software with Agil...
Agile2015 short paper presentation: Development of Complex Software with Agil...
 
исследование рынка аутсорсинговых контактных центров украины
исследование рынка аутсорсинговых контактных центров украиныисследование рынка аутсорсинговых контактных центров украины
исследование рынка аутсорсинговых контактных центров украины
 
Consumer it
Consumer itConsumer it
Consumer it
 
Matthew Brown's Visual resume
Matthew Brown's Visual resumeMatthew Brown's Visual resume
Matthew Brown's Visual resume
 
Final 3
Final 3Final 3
Final 3
 
Award-Winning Web Design
Award-Winning Web DesignAward-Winning Web Design
Award-Winning Web Design
 
2
22
2
 
Media kit buzzworks new
Media kit buzzworks  newMedia kit buzzworks  new
Media kit buzzworks new
 
Formacion e learning
Formacion e learningFormacion e learning
Formacion e learning
 
Dawn lifestyle expo 2011
Dawn lifestyle expo 2011Dawn lifestyle expo 2011
Dawn lifestyle expo 2011
 
2012.7.31 第二回 Stage3D 勉強会「モデリングを始めてみよう」
2012.7.31 第二回 Stage3D 勉強会「モデリングを始めてみよう」2012.7.31 第二回 Stage3D 勉強会「モデリングを始めてみよう」
2012.7.31 第二回 Stage3D 勉強会「モデリングを始めてみよう」
 
Making Learning Accessible Presentation
Making Learning Accessible PresentationMaking Learning Accessible Presentation
Making Learning Accessible Presentation
 

Similar to サーバレスモードRTMFP

node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作るnode+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作る
Kiyoshi SATOH
 
Node.js - JavaScript Thread Programming
Node.js - JavaScript Thread ProgrammingNode.js - JavaScript Thread Programming
Node.js - JavaScript Thread Programming
takesako
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3
openrtm
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境
yut148atgmaildotcom
 
Node-v0.12の新機能について
Node-v0.12の新機能についてNode-v0.12の新機能について
Node-v0.12の新機能について
shigeki_ohtsu
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
Etsuji Nakai
 

Similar to サーバレスモードRTMFP (20)

Android bluetooth
Android bluetoothAndroid bluetooth
Android bluetooth
 
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりRubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつり
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
 
Interact 2018:PowerShell of Microsoft SDN v2 101
Interact 2018:PowerShell of Microsoft SDN v2 101Interact 2018:PowerShell of Microsoft SDN v2 101
Interact 2018:PowerShell of Microsoft SDN v2 101
 
Clrh 110716 wcfwf
Clrh 110716 wcfwfClrh 110716 wcfwf
Clrh 110716 wcfwf
 
PF部第19回資料 poor man's JTAG
PF部第19回資料 poor man's JTAGPF部第19回資料 poor man's JTAG
PF部第19回資料 poor man's JTAG
 
Wireguard 実践入門
Wireguard 実践入門Wireguard 実践入門
Wireguard 実践入門
 
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作るnode+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作る
 
Node.js - JavaScript Thread Programming
Node.js - JavaScript Thread ProgrammingNode.js - JavaScript Thread Programming
Node.js - JavaScript Thread Programming
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3
 
"Up" with vagrant and docker
"Up" with vagrant and docker"Up" with vagrant and docker
"Up" with vagrant and docker
 
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpdmod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
 
SystemV IPC
SystemV IPCSystemV IPC
SystemV IPC
 
Twitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hackTwitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hack
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境
 
Node-v0.12の新機能について
Node-v0.12の新機能についてNode-v0.12の新機能について
Node-v0.12の新機能について
 
Lagopus Router v19.07.1
Lagopus Router v19.07.1Lagopus Router v19.07.1
Lagopus Router v19.07.1
 
Windows Server Community Meetup#2:New features of Microsoft SDN v2 in Windows...
Windows Server Community Meetup#2:New features of Microsoft SDN v2 in Windows...Windows Server Community Meetup#2:New features of Microsoft SDN v2 in Windows...
Windows Server Community Meetup#2:New features of Microsoft SDN v2 in Windows...
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
 
SEAndroid -AndroidのアーキテクチャとSE化について-
SEAndroid -AndroidのアーキテクチャとSE化について-SEAndroid -AndroidのアーキテクチャとSE化について-
SEAndroid -AndroidのアーキテクチャとSE化について-
 

サーバレスモードRTMFP

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n