在我开始之前,我应该声明我已经阅读了所有内容,我在跟随这个、这个和这个(以及更多...)的指导,并且仍然无法通过Socket连接到我们正在运行的服务器。
我们可以从服务器的日志输出中看到,这确实被发送到连接套接字。在xml数据之后,当然会发送一个空字节。之后,服务器会关闭连接。但是,似乎Flash不喜欢它,因为大约3秒钟后仍然出现“错误#2048”。我们真的没有更多的想法了...
以下是我在AS3中尝试的内容:
var host :String = "192.168.2.11";
Security.allowDomain(host);
Security.allowInsecureDomain(host);
Security.loadPolicyFile("xmlsocket://" + host + ":" + "843");
// TTS server socket
_socket = new Socket();
_socket.addEventListener(Event.CLOSE, handleClose);
_socket.addEventListener(IOErrorEvent.IO_ERROR, handleError);
_socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleSecError);
_socket.addEventListener(ProgressEvent.SOCKET_DATA, handleIncomingData);
_socket.addEventListener(Event.CONNECT, handleConnect);
_socket.connect(host, 1337);
您可以看到,主机是一个本地地址,但只要我在这个本地网络中,这应该不会有问题。而且我确实在这个网络中,因为从我的IDE(FD4)中运行它可以正常工作。 此外,swf文件和应用程序尝试连接的服务器位于同一台服务器上,但位于另一个端口。
服务器发送的策略文件(我们尝试过从端口843和1337)如下:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*" />
</cross-domain-policy>
我们可以从服务器的日志输出中看到,这确实被发送到连接套接字。在xml数据之后,当然会发送一个空字节。之后,服务器会关闭连接。但是,似乎Flash不喜欢它,因为大约3秒钟后仍然出现“错误#2048”。我们真的没有更多的想法了...