继上篇,这篇讲原理。
一,逻辑流程
web工程部署启动后,打开主页加swf,在SocketClient中向外开放了send和connect方法的调用,点击按钮时调用了connect的方法。在SocketConnect这个socket封装类中初始化时定义了动作监听,这个监听会在socket连通时调用定义的hangdler方法
socket.addEventListener(Event.CONNECT, connectHandler);
而ToConnect方法是在SocketClient里定义的,且里面声明了回调方法,所以在socket联通后,swf会回调页面的方法,最终成功进行回调后说明整个流程跑通了。
二,flex在进行消息通信时需要注意的事项
flex在进行socket连接时会优先对端口843进行连接,请求的字符串为:
<policy-file-request />
请求“安全策略文件” crossdomain.xml,可以去网上查,在843端口返回的下面的字符串即可:
<cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"*\" /></cross-domain-policy>
如果没有在843端口获取返回值,或者未联通,过3秒后才会连接目标端口请求“
安全策略文件”,如果依然没有,将会抛出“安全策略的错误”