FrontPage

FlashでSocketやXMLSocketを使ってサーバにアクセスするには、ソケットポリシーファイルの設置が必須です。ソケットポリシーファイルはHTTPポリシーファイル(crossdomain.xml)とは別物です。

公式サイトも含め、いまいちまとまっていてかつ新しい情報が見つからなかったので、まとめてみました。以下の情報はFlash Player 6〜10に対応しています。

おすすめの設置方法

843番ポートに(ソケットマスターポリシーファイルとして)配置する方法です。

まずソケットポリシーファイルを書きます。たとえばirc.gimite.netに置いてあるFlashから6667, 6668番ポートにアクセスできるようにするなら、こんな感じです。

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <allow-access-from domain="irc.gimite.net" to-ports="6667,6668"/>
</cross-domain-policy>

どのホストからもアクセスできるようにしたければ、こんな感じです。

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <allow-access-from domain="*" to-ports="6667,6668"/>
</cross-domain-policy>

あとはサーバの843番ポートに何かの入力があったときに、このファイルの内容を返せばOKです。方法は何でもいいのですが、以下はinetdを使う例です。

あとはActionScript?上で以下のように書けば、動くはずです。

Security.loadPolicyFile("xmlsocket://irc.gimite.net:843");
socket = new Socket("irc.gimite.net", 6667);
...

ソケットポリシーファイルまわりのFlash Playerの挙動

全バージョン共通

Flash Player 9.0.124.0以降 (Flash Player 10を含む)

Flash Player 9.0.115.0以降 9.0.124.0以前

Flash Player 7.0.19.0以降 9.0.115.0以前

Flash Player 6以降 7.0.19.0以前

おすすめの設置方法をおすすめする理由

情報源

コメント

間違いとか見つけたら教えてください。



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS