当前位置: 首页 > news >正文

对接公众号的网站怎么做编程软件自学网

对接公众号的网站怎么做,编程软件自学网,课件ppt模板免费下载 素材,linode搭wordpress.Net Core/.Net 6/.Net 8,一个简易的消息队列 身份验证接口身份验证接口实现program.cs通过api调用 做着玩的&#xff0c; 只实现了消息入队出队功能&#xff0c;没有持久化&#xff0c;也没有其它任何高级功能 直接上代码 public class AMQBase//:ISingleton {/// <summary…

.Net Core/.Net 6/.Net 8,一个简易的消息队列

    • 身份验证接口
    • 身份验证接口实现
    • program.cs
    • 通过api调用

做着玩的, 只实现了消息入队出队功能,没有持久化,也没有其它任何高级功能
直接上代码

public class AMQBase//:ISingleton
{/// <summary>/// 主题队列/// </summary>public Dictionary<string,Queue<EnQueueMsg>> queues {  get; set; }/// <summary>/// 验证用户,如果没有 IMQVerify 的实现,将不会验证用户/// </summary>readonly IMQVerify _verify;public AMQBase(IMQVerify verify) {_verify = verify;queues = new Dictionary<string, Queue<EnQueueMsg>>();/* 初始化时从 文件/数据库? 读取未消费消息? *//**/}/// <summary>/// 入队/// </summary>/// <returns></returns>public void EnQueue(EnQueueMsg msg) {if (_verify != null){if (!_verify.Verify(msg)){throw new Exception("身份验证失败");}}msg.msgid = Guid.NewGuid().ToString();//消息idEnQueueAsync(msg);}/// <summary>/// 异步执行入队/// </summary>/// <param name="msg"></param>/// <returns></returns>private async Task EnQueueAsync(EnQueueMsg msg){//新主题if (!queues.ContainsKey(msg.topic)){queues.Add(msg.topic, new Queue<EnQueueMsg>());}/* 异步存入文件/数据库? *//**///入队queues[msg.topic].Enqueue(msg);}/// <summary>/// 出队/// </summary>/// <param name="msg"></param>/// <returns></returns>public DeQueueData? DeQueue(DeQueueMsg msg){if (_verify != null){if (!_verify.Verify(msg)){throw new Exception("身份验证失败");}}//没有找到主题 或者队列为空if (!queues.ContainsKey(msg.topic)){return null;}if (queues[msg.topic].Count == 0){//主题队列为空,移除主题if (queues[msg.topic].Count == 0){queues.Remove(msg.topic);}return null;}//出队var mod=queues[msg.topic].Dequeue();var scount = queues[msg.topic].Count;//主题队列为空,移除主题if (queues[msg.topic].Count == 0){queues.Remove(msg.topic);}/* 异步 从文件/数据库 修改消息状态或删除? *//**/return new DeQueueData { msgid= mod.msgid,//消息idcoutent=mod.content,//消息内容topic= mod.topic,//主题count= scount//剩余未消费消息数量};}/// <summary>/// 获取主题列表/// </summary>/// <returns></returns>public string[] TopicList(){return queues.Keys.ToArray();}/// <summary>/// 获取全部的主题和未消费的消息数量/// </summary>/// <returns></returns>public List<MqCount> GetCount() { return queues.Select(x=>new MqCount { topic=x.Key,count=x.Value.Count}).ToList(); }/// <summary>/// 获取指定的主题和未消费的消息数量/// </summary>/// <returns></returns>public MqCount GetCount(string topic){if (!queues.ContainsKey(topic)) return null;return new MqCount{topic=topic,count = queues[topic].Count};}/// <summary>/// 删除主题,删除整个主题队列/// </summary>/// <param name="topic"></param>public async Task Remove(RemoveTopic rem){if (_verify != null){if (!_verify.Verify(rem)){throw new Exception("身份验证失败");}}queues.Remove(rem.topic);}}

身份验证接口

/// <summary>
/// 身份验证接口
/// </summary>
public interface IMQVerify//: ISingleton
{public bool Verify(MqMegBase mqMeg);
}

身份验证接口实现

    public class AMQVerify : IMQVerify//,ISingleton{public bool Verify(MqMegBase mqMeg){if (mqMeg.user == "mq" && mqMeg.password == "123456") return true;return false;}}

program.cs

    builder.Services.AddSingleton<IMQVerify, AMQVerify>();builder.Services.AddSingleton<AMQBase>();

通过api调用

    [ApiController, Route("[controller]/[action]")]public class AMQController : Controller{readonly AMQBase _mq;public AMQController(AMQBase mq){_mq = mq;}/// <summary>/// 入队/// </summary>/// <param name="msg"></param>[HttpPost]public async Task  EnQueue(EnQueueMsg msg){_mq.EnQueue(msg);}/// <summary>/// 出队/// </summary>/// <param name="msg"></param>/// <returns></returns>[HttpPost]public async Task<JsonResult> DeQueue(DeQueueMsg msg){return Json(_mq.DeQueue(msg));}/// <summary>/// 获取主题列表/// </summary>/// <returns></returns>[HttpGet]public JsonResult TopicList(){return Json(_mq.TopicList());}/// <summary>/// 获取全部的主题和未消费的消息数量/// </summary>/// <returns></returns>[HttpGet]public JsonResult GetCount(){return Json(_mq.GetCount());}/// <summary>/// 获取指定的主题和未消费的消息数量/// </summary>/// <param name="topic"></param>/// <returns></returns>[HttpGet]public JsonResult GetTopicCount(string topic){return Json(_mq.GetCount(topic));}/// <summary>/// 删除主题/// </summary>/// <param name="rem"></param>[HttpPost]public void Remove(RemoveTopic rem){_mq.Remove(rem);}}
http://www.yayakq.cn/news/575511/

相关文章:

  • 淘客网站开发培训公司介绍简历模板
  • 合肥市门窗工程在哪个网站接活做做图片的软件免费
  • 用什么网站开发封面制作app
  • 网页界面设计中的安全宽度是什么意思北京seo案例
  • 成品网站建设流程图微商城网站建设案例
  • 国际教育机构网站建设开发方案网站开发的标准
  • 企业网站建设遵循的原则企业网站销售
  • 网站建设运维情况自查报告wordpress 3.6
  • 软件下载网站如何履行安全管理义务企业在线注册
  • 石家庄网站建设电话咨询网络营销策划要素
  • 网站建设煊煊网兖州网站建设多少钱
  • centos系统怎么做网站长沙企业网站推广服务公司
  • 南宁网站建设清单做的漂亮的家居网站
  • 视频门户网站建设项目标书网页模板素材
  • 商务网站开发步骤杭州网站制作工作室
  • 做网站需要会编程吗wordpress 仪表盘很慢
  • 专业网站建设阿里云公司名字大全集免费
  • 福建省龙岩市建设培训中心网站个人网站号备案吗
  • 商务网站建设论文答辩ppt湖北金扬建设网站
  • 有什么关于网站建设实例的书族蚂建站
  • 建设监督网站首页海外cdn
  • 网站推广方式大全wordpress图片编辑插件下载
  • 厦门网站设计多少钱做网站设计的公司柳州
  • 网站集约化建设报告广州市新闻最新消息
  • 湛江网站建设哪家好网页设计学习心得
  • 外国网站后台设计网站系统介绍
  • 淘宝客网站主题模版网络管理系统的主要功能
  • 电子商务网站建设技能实训答案安徽工程建设信息网
  • 编程就是做网站吗深圳设计公司深圳市广告设计公司
  • 免费大空间网站ps网页设计培训