Updates from 八月, 2009 Toggle Comment Threads | 键盘快捷键

  • admin 17:58 on 2009-08-12 链接地址 | 回复  

    FLEX服务端代码的结构思考 

    文章修改:
    时间:2009-08-18
    原因:罗东东同学的热心指摘出Flash的跨域访问限制及解除

    今天在逛douban的时候看到匡威的网站 http://converse.com.cn/swf/home.html。

    这个网站是纯flash的网站,包括产品介绍,会员注册等功能。

    遂想了一下Flex与自己的或者他人的(比如GOOGLE MAP)服务端的API交互问题:

    • 传统的html式的网站,模式是用户发送请求,服务器根据需要来自己处理或者调用他人的服务器API来处理请求,最终就处理结果返回给客户端浏览器。
    • Flex网站,则与Ajax类似,是一个通过异步请求完成客户端画面填充的。即,客户端直接和自己的或者他人俄服务器端API进行交互,返回的数据整理与显示的安排,完全由客户端来控制。这样就可以省去,他人服务器API -》自己服务器-》客户端 的流程。而变成他人服务器API-》客户端。

    FLEX这种结构的好处,当然就是为啥人们要用Ajax获得好处。但是FLex和AJAx的区别是Ajax不能跨域名操作。而Flex无此限制。

    ajax本身实际上是通过XMLHttpRequest对象来进行数据的交互,而浏览器出于安全考虑,不允许js代码进行跨域操作,所以会警告。

    Flex跨域访问也是有跨域限制的,但是可以由提供API的服务器,主动设置该限制。

    提供服务的站点,需要部署一个crossdomain.xml来设定跨域限制设定。

    如果本身想允许任何网站访问,哪么它肯定在根目录放了一个 crossdomain.xml, 里头写 *,

    例如   http://www.chanet.com.cn/crossdomain.xml

    想到这里,我想了下,服务端API的编写问题:

    1. API的实现方式 HTTPService,WebService,RemoteObject。WebService可以使用SOAP(简单对象访问协议)
    2. API的登陆,传统的HTML方式,需要自己的服务器和他人的服务器进行登陆控制及保持登陆状态。Flex是客户端直接和服务端的API交互,应该可以使用cookie,session套路解决。
    3. 如果要提供一套多个功能的api接口,最好像google那样,一个登陆,所有网站全部登陆。即Flex中调用的多个API,只需要登陆一个Login的API,其他的API都可以使用。不需要多次登陆。
    4. 实现多个api接口时,可以参考ecshop的实现思想,一个controller接受act参数,controller根据act的不同,调用不同的api方法,或者跳转到不同的页面。(这里不知道flex调用api时是否支持 api的跳转,应该不支持)。
    5. 这样的话,MVC的Control和View可以完全分离,Control负责根据View的选项,进行处理,返回数据,View接到数据负责显示。
    6. 这样的Control返回数据统一是XML形式,这样可以跨更大的View种类,flash,ajax,桌面程序等。
    7. 这样就需要在编码开发前,确定下Control和View之间传递的数据,及数据类型,数据格式。

    嗯,乱想一通,感觉从HTML到Flex的最大改变是

    他人服务器API -》自己服务器-》客户端 的流程。而变成他人服务器API-》客户端。

    似乎和现在炒得很热的 云计算 有些相同的思想。

     
  • admin 10:31 on 2009-05-27 链接地址 | 回复  

    windows xp/2000建立本地本机smtp服务器 

    安装设置服务端
    windows xp和2000本身就拥有构件smtp服务器的功能,只是一般还没有安装。选择“控制面板→添加/删除程序→添加/删除windows组件”,弹出 “windows组件向导”对话框,在其中双击“internet信息服务(iis)”项,就会打开详细选择项,选中“smtp service”,按“确定”,插入windows xp安装盘进行安装。
    安装好smtp服务器后,选择“控制面板 →性能和维护→管理工具→internet信息服务”打开internet信息服务设置窗口,在窗口左侧点击本地计算机名,展开本地计算机目录,可以看到有两个分支“wed站点”和“默认smtp虚拟服务器”。在“默认smtp虚拟服务器”上点击鼠标右键选择“属性”,打开“默认smtp虚拟服务器属性” 窗口。
    “常规”选项卡主要设置ip地址,单击ip地址下拉项选择“127.0.0.1”,表示指向本地计算机ip地址,其他项使用默认即可。如果你是局域网接入,拥有固定ip地址,那么ip地址就应该选择相应的地址。
    “访问”选项卡中设置访问权限。单击“身份验证”,选择“匿名访问”,表示任何用户都可以发送,其他两项不用选择;单击“连接控制”中的“连接”和“ Reply限制”中的“中断”,选中“仅以下列表除外”,表示可以许接入所有用户的访问。“ Reply限制”中的“Reply”,点击添加,然后选单台计算机,添加IP地址为 127.0.0.1。(不进行此项设置,可能会出现:SMTP server response: 550 5.7.1 Unable to relay for xxxxx@163.com。。。的错误)

    小结:
    这种“Unable to relay user@externaldomain.com”的错误通常属于设计意图。也就是说,为了防止Internet上的Unsolicited Commercial E-Mail (UCE),Microsoft的SMTP服务,默认,是不允许一封邮件通过它中继到外面的邮件地址的!

    “邮件”选项卡中设置邮件传输条件及限制,“限制邮件大小为”等四个选项可以使用默认值,无须更改;

    “将未传递报告的副本发送到”可将发送不成功的邮件返回发件人,并且写明不成功的原因;“死信目录”设置没有发送成功的邮件被存放的位置。

    “传输”选项中设置邮件传递时间,这里不用修改,使用默认值;“ldap路由”选项用来指定服务器使用的目录服务器标识和属性,这里也不用启动它。

    “安全”选项中设置使用发送服务器的有权用户,默认用户是“administrators”,你可以单击“添加”添加使用用户。

    一切设置好后,你就拥护了自己的邮件发送服务器了!下面我们来看看在outlook express和foxmail中如何设置使用自己的smtp来发信。

    设置客户端软件

    打开outlook express,选择“工具→账号→邮件”,选中帐号点“属性”,在“服务器”标签下的“发送邮件(smtp)”中输入“127.0.0.1”,即本机地址,“我的服务器需要身份验证”不选择。

    在foxmail中选择需要设置本机发信的帐号,然后选择“帐号→属性→邮件服务器”,在“发送邮件服务器”中输入“127.0.0.1”,“smtp邮件服务器需要身份验证”也不要选择上。
    撰写发送邮件和我们平时操作一样,没有什么区别。写好后点发送,邮件会在瞬间发送完毕。

    ——————————————————————————–

    附注:
    因为很多垃圾邮件都是这样发送的,所以有部分的免费邮箱是收不到的。比如网易就过滤掉了,而gmail,sohu 和 yahoo 可以收的到哦。

    在outlook express 中,账户属性的下面 把 “接收邮件或同步时包含此账户” 的钩去掉,这样收邮件的时候就不会使用这个账号了.这smtp是用来发邮件的!不能接收

     
  • admin 09:43 on 2009-05-07 链接地址 | 回复
    Tags: DNS刷新, 花生壳   

    使用花生壳后有时候需要客户端机器执行DNS刷新 

    首先进入命令提示符下(开始——运行——cmd):

    先运行:ipconfig /displaydns这个命令,查看一下本机已经缓存了那些的dns信息的,然后输入下面的命令

    ipconfig /flushdns

    这时本机的dns缓存信息已经清空了,我们可以再次输入第一次输入的命令来看一下,

    ipconfig /displaydns

     
c
写新的
j
下一篇文章/下一个回复
k
前一篇文章/以前的回复
r
回复
e
编辑
o
显示/隐藏 回复
t
回到顶部
l
go to login
h
show/hide help
shift + esc
取消