2007年07月28日
ソケット通信と外部プログラム呼び出し @ Flash
Flashから直接外部プログラムを呼び出せれば苦労しないのですが、呼び出せないので、先日は、CGI形式にして呼び出しました。しかし、これではパフォーマンスに問題有り。Apache経由になっているので仕方がないのかも。今度は、それよりもパフォーマンスが良さそうな方法としてソケット通信を使うことにしました。と言っても、C言語で直接書くのは面倒だったので、モーションセンサーの情報はC言語で書いてプログラムを用意し、そのプログラムをPerlから呼び出すことにしました。
サーバーの参考元はこの辺。
Stray's Complete Waste Of Bandwidth: Flash 5 Sockets
>>関連リンク
HELIANT.NET - XMLSocket Simplified Whitepaper
>>関連リンク
先ずは、シンプルにPerlから呼び出すテスト。
my $ret = system("./motion");
print $ret;
この形で問題無さそうです。しかし、ソケット通信に関する処理を書いたスクリプトに入れるとダメ。どうも呼び出すプログラムをフルパスで書かねば具合悪いことがあることが分かり、修正。しかし、それでも、まだダメ。色々と調べるとsystemでは無くopenを使った方がよいことが判明。
perlからpro*cの戻り値を受け取るには?
>>関連リンク
色々と実験した結果、下記のような感じで、データが受け取れました。レスポンスも可成りよいです。ウェブサーバー(CGI)経由はやめます。
[DataEvent type="data" bubbles=false cancelable=false eventPhase=2 data="<outputStructure><x>32</x><y>0</y><z>-43</z></outputStructure>
他にも参考になりそうなサイト
FACEs -- Flash, XMLSocket & Multiuser Community
>>関連リンク
関連日記
- 2007年07月27日 MacBook Proのモーションセンサー (12963)@ Flash
- 2008年09月08日 PocketGuitar 1.0 (2772)@ 音楽
- 2005年07月27日 ワイドスクリーンのiBookは何処へ? (2580)@ Mac
- 2006年10月29日 夢のカメラ (2572)@ デジカメ
- 2007年08月11日 Flex2勉強会 (2136)@ Flash
アマゾン広告
この日記ページは閲覧数などの条件に応じて、閲覧制限を行っています。他からリンクしていただいても、そのリンクから辿った閲覧者が当ページの内容をご覧頂けない場合があります。ご了承下さい。