5-IFramework-模块-消息模块

  1. 消息

消息

A:回复T即可退订

B:T

A:回复T即可退订

B:T即可

A:退订成功

消息是软件开发中减少模块耦合的有效方式

模块特点:

  • 支持流量控制
  • 支持子类型匹配(根据子类型监听父类型)
  • 支持异步等待
  • 支持消息优先级

使用示例:

//需要监听的类
public interface IPub { }
public class Pub : IPub { }

//自定义监听器类
 public class Listener : IMessageListener
{
    public Listener()
    {
        //构造函数,在这里可以直接写对某个类型的监听
    }

    //实现接口里的消息回调方法
    public void Listen(IMessage message)
    {
        Log.L($"收到类型为{message.subject}的消息,消息值为{message.code}");
    }
}
//获取消息模块
messageModule = Framework.GetEnv(EnvironmentType.Ev0).modules.Message;
//匹配子类型开关
messageModule.fitSubType = true;
//每帧处理的消息量
messageModule.processesPerFrame = 1;

//实例化一个消息监听器
Listener listenner = new Listener(); 

//根据IPub监听
messageModule.Subscribe<IPub>(listenner);

//发送一条重要程度为Important的消息,消息值为100
messageModule.Publish<Pub>(null,MessageUrgencyType.Important).SetCode(100);