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
>>関連リンク

閲覧数: 5041 / はてなブックマークusers

blog comments powered by Disqus

関連日記

アマゾン広告

この日記ページは閲覧数などの条件に応じて、閲覧制限を行っています。他からリンクしていただいても、そのリンクから辿った閲覧者が当ページの内容をご覧頂けない場合があります。ご了承下さい。

▼日記検索

Mac

Shade

3D

Flash

ゲーム

ウェブ

音楽

映画

デジカメ

Windows

Linux

携帯電話

テレビ

広島

電子工作

iOS

▼ 最近のトラックバック

▼ランキング

▼関連サイト