actionscript-3 - 如何使我的PHP Socket Server将策略文件发送到Flash客户端?

标签 actionscript-3 sockets flex3 content-type

我的Flash游戏需要连接到我的PHP Socket Server。由于安全原因,策略文件在尝试连接时必须发送到Flash客户端。

以下是我所做的。

在Actionscript/Flex 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);

但是,我收到以下错误消息:“由于缺少Content-Type,因此忽略了(URL)上的策略文件。”因此,我尝试通过在我的xml代码上方添加 header 来解决此问题:
socket_write($socket, "Content-Type: text/xml\n");

不幸的是,我仍然遇到相同的错误。我输入的内容类型有误吗?

最佳答案

尝试发送此:

HTTP/1.1 200 OK\r\nContent-Type: text/xml\r\n\r\n

确保在此之前没有发送任何消息。
另外,在关闭套接字之前发送\r\n

关于actionscript-3 - 如何使我的PHP Socket Server将策略文件发送到Flash客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1082676/

相关文章:

python - 在Python中发送CTS帧

apache-flex - 团队如何使用 Flex Builder Pro 开发大型应用程序?

apache-flex - 组合框未使用可绑定(bind)数据进行更新

flash - AS3 - 如何从基于文本的文件导入变量?

php - 如何创建和使用随机数

actionscript-3 - ActionScript 3 : Memory Leak in Server Polling Presentation App

java - 如何使用线程访问相同的数据?

actionscript-3 - 如何在 ActionScript 3 中正确测试类继承?

c++ - DisableAddressSharing注册表不起作用

apache-flex - Flex Builder 3 或 Flex 4(Flash Builder 4 又名 Gumbo)