zoukankan      html  css  js  c++  java
  • .NET Remoting 体系结构 之 消息接收器

    Activator.GetObject()方法调用 RemotingServices.Connect()方法连接已知对象。在 Connect()方法中,Unmarshal()方法不但在创建代理时发生,也在创建特使接收器时发生。代理使用一个特使接收器链把消息传递到信道中。所有接收器都是侦听器,它们可以更改消息,执行一些额外的操作,如创建锁、写事件以及执行安全检查等。所有消息接收器都实现 IMessageSink 接口,这个接口定义一个属性和两个方法:

    ●  NextSink
    属性——接收器使用这个属性到达下一个接收器,并向前传递消息。

    ● SyncProcessMessage()方法 ——对于同步消息,前面的接收器或远程基础结构调用这个方法, 它的 IMessage 参数用于发送消息和返回消息。

    ● syncProcessMessage()方法 ——对于异步消息,接收器链中前面的接收器或远程基础结构 调用这个方法。该方法有两个参数:消息和接收回应的消息接收器。 下面几节讨论可以使用的 3 个不同的消息接收器

    1. 特使接收器

    通过 IEnvoyInfo 接口,可以到达特使接收器链。编组对象引用 ObjRef 有一个 EnvoyInfo 属性, 该属性返回 IEnvoyInfo 接口。特使列表从服务器上下文中创建,因此,服务器可以把一些功能注入 客户端。特使可以收集客户端的身份信息,并把这些信息传递给服务器。

    2. 服务器上下文接收器

    在信道的服务器端接收消息时,消息就传递给服务器上下文接收器。服务器上下文接收器链中 的后一个接收器把消息传递到对象接收器链中。

    3. 对象接收器

    对象接收器与某个具体的对象关联。如果对象类定义特定上下文特性,就为该对象创建上下文 接收器。

  • 相关阅读:
    代码规范
    今日头条广告投放
    网络广告计费方式CPM、CPA、CPS、CPT、CPC及比较分析
    dedecms arclist分页
    nginx配置http访问自动跳转到https
    阿里云《nginx服务器配置SSL证书》 配置参数
    JavaScript 通过身份证号获取出生日期、年龄、性别 、籍贯
    Bootstrap自适应各种设备
    css3动画大全
    golang
  • 原文地址:https://www.cnblogs.com/WangJinYang/p/2892760.html
Copyright © 2011-2022 走看看