BlazeDS由http切换https注意事项

这段时间准备发布产品,预览版已在用户那里部署。昨天接到一电话,说在https环境下,只要点击到和Flex有关的东西就老报错,然后权限消失,得重新登录。
得知这一问题后自己切换到https下观察,果然如此,而且只要是走BalzeDS AMF通道就必然报错且servelt session丢失。直观感觉应该是通道问题,随后开打BlazeDS配置文件,翻到services-config.xml文件时,发现了my-secure-amf通道,那么顺理成章的应该走这个。遂在Flex那里修改了AMFChannel对象的uri属性(要实现通道切换方法很多,这只是一种方式),由于需要统一通道,所以在修改AMFChannel的uri后还是不能解决问题,经过排查这里必须采用SecureAMFChannel对象才行,最后问题解决。那么要支持两种协议,就需要在flex中进行协议判定,通过不同的协议来切换不同的通道了。代码如下:
        /**
         * 处理协议
         */
        private function init(){
            var surl:String = ExternalInterface.call("eval", "window.location.href");
            var cs:ChannelSet = new ChannelSet();
            var c:Channel = null;
            if(URLUtil.getProtocol(surl)=="https"){
                c = new SecureAMFChannel();
                c.uri="/SSS/messagebroker/amfsecure";
            }else{
                c = new AMFChannel();
                c.uri="/SSS/messagebroker/amf";
            }
            cs.addChannel(c);
            remote.channelSet=cs;
            .;
        }

你可能感兴趣的:(C++,c,xml,Flex,C#)