stevenjin 2024-06-02 21:07 采纳率: 97.3%
浏览 9
已结题

asp.net core mvc中监听设备方式优化

1.需求:web客户端在启动时,需订阅mq服务端的消息。目前是在Home控制器启动的。这样一个问题,就是该控制器经常被访问,于是加了一个判断。
2.优化思路,想把监控这块放在Program里,通过一个不被干掉和打扰的线程来做,想到是不是开一个后台服务。但不知具体写法(用.net 6.0以上)
3.目前做法:在Program里,配置了路由:parrn:"{Controller=Home}/{action=Index}/{id?}。在Index方法中,有一个Start()方法,开启mqtt监听

  • 写回答

4条回答 默认 最新

  • wanghui0380 2024-06-03 08:40
    关注

    web客户端在启动时,需订阅mq服务端的消息。目前是在Home控制器启动的。这样一个问题,就是该控制器经常被访问,于是加了一个判断。

    额,这描述那里不对啊? web客户端?运行在浏览器里,直接用js就好(js里多的是mqtt库,如果是不入库直接在页面显示的,直接用js写就是)

    不过换个描述给web客户端提供服务的webserver,到可以理解了。

    那么楼上就行了,自己写个Ihostedservice,或者backworkservice。至于如何连接mqtt服务器就是普通控制台的代码,mqttclient
    然后在启动前 在 configservcie配置注入即可。

    假设是net8所谓的轻api,基本写法是

     var builder = WebApplication.CreateBuilder(args);
    builder.Services.AddHostedService<MqttBridge>();
    
    public class MqttBridge : BackgroundService //这个我就不扩展写了,你明白意思即可
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 6月11日
  • 已采纳回答 6月3日
  • 修改了问题 6月2日
  • 创建了问题 6月2日

悬赏问题

  • ¥15 网络分析设施点无法识别
  • ¥15 状态图的并发态问题咨询
  • ¥15 PFC3D,plot
  • ¥15 VAE模型编程报错无法解决
  • ¥100 基于SVM的信息粒化时序回归预测,有偿求解!
  • ¥15 物体组批优化问题-数学建模求解答
  • ¥15 微信原生小程序tabBar编译报错
  • ¥350 麦克风声源定位坐标不准
  • ¥15 apifox与swagger使用
  • ¥15 egg异步请求返回404的问题