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. 对象接收器

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

  • 相关阅读:
    将博客搬至CSDN
    ELK环境搭建(ElasticSearch、Logstash 、Kibana)
    Linux 安装Jdk(保姆级教程)
    从头到尾再说一次 Java 垃圾回收
    Exchange 2013学习笔记二十一:传输规则
    Exchange 2013学习笔记二十:电子邮件地址策略
    Exchange 2013学习笔记十九:证书管理
    Exchange 2013学习笔记十八:ECP设置
    Exchange 2013学习笔记十七:OWA设置
    Exchange 2013学习笔记十六:公用文件夹
  • 原文地址:https://www.cnblogs.com/WangJinYang/p/2892760.html
Copyright © 2011-2022 走看看