0

フラッシュソケットクライアントをc++ソケットサーバーに接続しようとしています(boost :: asioを使用)。私は常に、ポート7171でリッスンしている離れたサーバーでサーバーアプリを実行します。

ローカルマシン(CS5.5内で直接)でフラッシュソケットクライアントを実行すると、接続は正常に機能します。このテストが成功した後、swfをソケットサーバーと同じマシンにアップロードして、複数のユーザーがHTTP経由で接続できるようにすることにしました(フラッシュクライアントとc ++サーバーは同じドメイン内にあると思います)が、この場合は常にSecurityError2048を取得します。

何が欠けている可能性がありますか?

4

2 に答える 2

2

ローカルでテストする場合、セキュリティの問題を無視するサンドボックス内にいるため、アップロード時に(サンドボックスの外部で)機能しません。

あなたのActionScriptにこれを含める必要があります。

// host is something like dev.mydomain.com
Security.allowDomain( host );
Security.loadPolicyFile( "xmlsocket://" host + ":" port );

ポートでこのリクエストをリッスンする必要があります

<policy-file-request/>

ポリシーのリクエストを受け取ったら、このノードでクロスドメインポリシーを返す必要があります。

<allow-access-from domain="*" to-ports="*"  />
于 2012-04-17T16:03:23.130 に答える
0

Flashでは、任意のソケットにアクセスするために、ホスティングマシンでポリシーサーバーが実行されている必要があります。

http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html

これはクロスドメインファイルとは別の要件です。ポート843で実行されている実際のポリシーサーバーアプリが必要です。

CS5内のFlashは、開発環境にあることを認識しているため、ポリシー要件を無視している可能性があります。

于 2012-04-17T15:42:04.927 に答える