在Silverlight中使用ESFramework-- ESFramework 4.0 快速上手(05)

  Silverlight已经到4.0版本了,已经相当成熟了,在Silverlight中使用socket与服务器进行通信也是常见的需求,所以,作为.NET平台的通信框架,ESFramework支持Silverlight开发是必须的。

      ESFramework.SL 即是ESFramework提供的Silverlight开发组件,其完整实现了基于流的TCP客户端网络引擎,并与其非Silverlight的接口完全一致(即是ESFramework 4.0 快速上手文中提到的IRapidPassiveEngine)。也就是说,我们完全可以将ESFramework 4.0 快速上手 一文中提到的客户端引擎替换为ESFramework.SL的引擎来讲解,仍然是正确的。这两个Rapid客户端引擎,一个工作于windows应用程序,一个工作于Silverlight应用程序。但是,它们都可以共用同一个Rapid服务端引擎(IRapidServerEngine)。

 

一.Silverlight 安全验证

  如同flash的socket编程的安全策略一样,在Silverlight中使用Socket,也需要安全策略验证。我们的服务器上必须启动Silverlight策略服务器程序监听943端口。SilverLight内置的Socket会在连接目标TCP端口之前先自动连接943端口以获取验证,通过验证后,才会去连接目标端口。

  比如说,我们的服务端应用程序在192.168.0.20的机器上使用TCP端口4530提供服务,当Silverlight的Socket连接4530端口之前,该Socket会自动先连接192.168.0.20的943端口,以进行安全验证,验证的过程是这样的:该Socket与192.168.0.20的943端口的TCP连接建立成功后,会发送"<policy-file-request/>"(UTF-8编码)给Silverlight策略服务器程序,策略服务器程序收到后,给客户端回复下面的内容以表示验证通过:

<? xml version = " 1.0 "  encoding  = " utf-8 " ?>
< access - policy >
    
< cross - domain - access >
        
< policy >
            
< allow - from >
                
< domain uri = " * "   />
            
</ allow - from >
            
< grant - to >
                
< socket - resource port = " 4502-4534 "  protocol = " tcp "   />
            
</ grant - to >
        
</ policy >
    
</ cross - domain - access >
</ access - policy >

  客户端的Socket接收到这段回复后,才确认已经通过安全验证了。接下来,才会正式去连结192.168.0.20的4530端口。

  这个安全验证的过程,是由Socket自动完成的。针对ESFramework.SL.RapidPassiveEngine来说,就是在调用其Initialize方法时,自动发生的。

     要注意一点,服务器回复的策略文件的内容中包含“<socket-resource port="4502-4534" protocol="tcp" />” ,其含义是允许客户端以TCP的方式连接本服务器的4502-4534端口。所以,我们的服务端应用程序必须使用4502到4534之间的端口提供服务。

 

二.Silverlight 策略服务器

  客户端的Socket的安全验证是自动完成的,但是安全验证的服务端程序必须由我们自己写。从上面的描述来看,所有的Silverlight安全验证都可以使用同一个服务端程序,所以,ESFramework 提供了Silverlight策略服务器程序ESFramework.SLPolicyServer.exe(从ESFramework 4.0 概述文末下载),可以直接拿来使用。

  在启动你自己的服务端程序之前,请在同一台机器先启动ESFramework.SLPolicyServer.exe,其运行界面如下:

    

 

三.使用ESFramework.SL.RapidPassiveEngine

  ESFramework.SL.RapidPassiveEngine的使用方法与ESPlus.Rapid.RapidPassiveEngine是一样的,详细可以参见ESFramework 4.0 快速上手

      ESFramework.SL 也可以从ESFramework 4.0 概述文末下载。

 

 

ESFramework 4.0 概述 (文末包含最新版本的ESFramework4.0以及相关demo、帮助文档下载)

《ESFramework 4.0 快速上手》系列所有文章

《ESFramework 4.0 高级进阶》系列所有文章

 

 

转载于:https://www.cnblogs.com/zhuweisky/archive/2011/03/07/1975008.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值