首页 > 其他分享 >消息中心

消息中心

时间:2023-03-21 14:33:34浏览次数:26  
标签:中心 dic action 消息 Key id using public

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 消息中心
/// 主要是为了解除耦合性
/// </summary>
public class MessageManager :Singleton<MessageManager>//继承单利
{
//字典 用于存储消息 分别是 id 和对应的方法
public Dictionary<int, Action<object>> dic_Key = new Dictionary<int, Action<object>>();

//添加消息
public void OnAddlisten(int id, Action<object> action)
{
//如果有这个id
if (dic_Key.ContainsKey(id))
{
//那么就添加这个对应方法
dic_Key[id] += action;//多波委托

}
//如果没有此id
else
{
dic_Key.Add(id, action);//添加方法
}
}
//删除消息
public void OnRemoveListen(int id, Action<object> action)
{
//如果有这个键
if (dic_Key.ContainsKey(id))
{
//就删除对应方法
dic_Key[id] -= action;
//如果此键为空
if (dic_Key[id] == null)
{ //删除这个键
dic_Key.Remove(id);
}

}

}
/// <summary>
/// 发送消息
/// </summary>
/// <param name="id"></param>
/// <param name="arr"></param>
public void OnSendListen(int id, params object[] arr)
{
//如果有这个键
if (dic_Key.ContainsKey(id))
{
dic_Key[id](arr);//发送对应消息(也可调用)
}
}

 


}

标签:中心,dic,action,消息,Key,id,using,public
From: https://www.cnblogs.com/qinhuanghan5/p/17239905.html

相关文章

  • 浅谈分布式环境下WebSocket消息共享问题
    浅谈分布式环境下WebSocket消息共享问题技术分析我们在开发时会遇到需要使用即时通讯的场景,当然,实现方式很多,Socket、MQTT、Netty....等等。具体用哪种就在于业务的需求......
  • 交易履约之产品中心实践
    作者:京东科技晏银喜、邹成兵、叶浩、张锐、杨贺麟、梁玉、程龙一、我们是谁?科技产品中心是什么?1、科技产品中心1.1、定位打造科技统一的内外部产品供应链管理系统,支持业务发......
  • 为什么不建议用redis做消息队列
    redis的list做队列其实还是很爽的,简单,一个读一个写即可,而且基本每个系统都会使用redis,接入没有附加成本,也没有额外的学习成本。如果需要订阅模型,写三个队列,然后三个消费者......
  • 消息队列简介
    什么是消息队列消息队列是一种异步的服务间通信方式,适用于无服务器和微服务架构。消息在被处理和删除之前一直存储在队列上。每条消息仅可被一位用户处理一次。消息队列......
  • 太坑了,我竟然从RocketMQ源码中扒出了7种导致消息重复消费的原因
    大家好,我是三友~~在众多关于MQ的面试八股文中有这么一道题,“如何保证MQ消息消费的幂等性”。为什么需要保证幂等性呢?是因为消息会重复消费。为什么消息会重复消费?明明......
  • RabbitMQ消息队列搭建以及迁移
    一、RabbitMQ框架rabbitmq系统架构图通过路由将交换机和队列进行绑定,从而实现消息的发送和接收rabbitmq基本概念1、Message(消息)消息是不......
  • 【RabbitMQ-消息可靠性&延迟消息】
    一、MQ常见问题二、消息可靠性1、消息丢失可能发生的节点2、生产者确认机制3、消息持久化4、消费者确认消息5、失败重试机制三、死信交换机1、死信2、死信交换机3、......
  • zbus logo消息队列、服务总线 zbus
    轻量级服务总线/消息队列1)多种消息模式--支持生产者/消费者,发布订阅,RPC2)丰富的API--C/C++/C#/JAVA/Python/Node.JS跨平台、多语言支持3)开放协议标准--原生兼容HTTP协议(长......
  • Vue.js 消息订阅与发布
    视频npmipubsub-js该技术在vue中被事件总线完全替代componentsSchool.vue<template> <divclass="school"> <h2>学校名称:{{name}}</h2> <h2>学校地址:{{add......
  • unity摄像机围绕屏幕中心旋转,平移,缩放
    很好用所以保存下来使用直接附代码了3D摄像机的usingDG.Tweening;usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclas......