私のフラッシュゲームは私のPHPソケットサーバーに接続する必要があります。セキュリティのために、接続しようとすると、ポリシーファイルをフラッシュクライアントに送信する必要があります。私のPHPソケットサーバーがフラッシュクライアントにポリシーファイルを送信する方法を教えてください。
以下は私が行ったことです。 ActionScriptの/フレックス3/Flashで
:
Security.loadPolicyFile("http://[SERVER.IP]:9000/crossdomain.xml");
socket.connect(hostName, port); //connect to the socket
[rest of original code]
リクエストのソケットサーバーの応答を作るために、私は、サーバーに以下を追加しました:
elseif (preg_match("/policy-file-request/i", $buffer) or preg_match("/crossdomain/i", $buffer)) {
socket_write($socket, '<?xml version="1.0"?><cross-domain-policy><site-control permitted-cross-domain-policies="all"/><allow-access-from domain="*" to-ports="9000" /></cross-domain-policy>');
unset($read_sockets[array_search($socket, $read_sockets)]);
socket_shutdown($socket, 2);
socket_close($socket);
しかし私は次のエラーを取得します: "コンテンツタイプが見つからないため(URL)でポリシーファイルを無視しています。"だから、私は右の私のXMLコードの上にヘッダを追加することによってこの問題を解決しようとした:
socket_write($socket, "Content-Type: text/xml\n");
残念ながら、私はまだ同じエラーを取得します。私は間違った方法でコンテンツの種類を与えていますか?
HTTP/1.1 200 OK \ r \ nContent-Type:text/xml \ r \ n \ r \ nは私のためには機能しませんでした。 HTTP/1.1 200 OK \ r \ nコンテンツタイプ:text/xml \ n \ n – Mitchell