当前位置:主页   - 电脑 - 网站开发 - ASP.Net
ESFramework 4.0 快速上手 -- 在Silverlight中使用ESFramework
来源:网络   作者:   更新时间:2012-03-29
收藏此页】    【字号    】    【打印】    【关闭

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是一样的?

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明