NetCore_signalR服务端

这篇具有很好参考价值的文章主要介绍了NetCore_signalR服务端。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前提

本文不介绍关于SignalR的原理内容,比如如何实现的长连接,如何实现双工通信,如何实现向下兼容的通信等等

本文仅仅记录如何实现一个服务端

环境

  • IDE :visual Studio2022
  • 环境:.net6 webApi程序
  • 语言:C#10

nuget 包

没有引入其他包,因为是WebApi项目,所以默认的asp.net的包都引入了。

开始改造

Program 的main函数

 //增加SignalR的服务
 builder.Services.AddSignalR();
  //指定Hub的路径和处理类
  app.MapHub<WarningBroadcastHub>("/sr/warning_broadcast");

完整代码

using Demo_WarningMonitor.Api.Services;
using Demo_WarningMonitor.Api.SignalRHubs;
using Demo_WarningMonitor.Api.Workers;
using Microsoft.AspNetCore.SignalR;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting.WindowsServices;

namespace Demo_WarningMonitor.Api
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var builder = WebApplication.CreateBuilder(args);
            IConfiguration configuration = builder.Configuration;

            var options = new WebApplicationOptions
            {
                Args = args,
                ContentRootPath = WindowsServiceHelpers.IsWindowsService()
                                    ? AppContext.BaseDirectory : default
            };

            // Add services to the container. 
            builder.Services.AddControllers();  
          
            builder.Services.AddSignalR();

            // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
            builder.Services.AddEndpointsApiExplorer();
            builder.Services.AddSwaggerGen();
 
            var app = builder.Build();

            // Configure the HTTP request pipeline.
            //if (app.Environment.IsDevelopment())
            //{
            app.UseSwagger();
            app.UseSwaggerUI();
            //}

            app.UseStaticFiles();

            app.UseHttpsRedirection();

            app.UseAuthorization();


            app.MapControllers();

            #region SignalR
            app.MapHub<WarningBroadcastHub>("/sr/warning_broadcast"); 
            #endregion 
            app.Run();
        }
    }
}

WarningBroadcastHub

一个自己定义的Hub处理类,继承自Hub

引入命名空间

using Microsoft.AspNetCore.SignalR;

完整代码

using Microsoft.AspNetCore.SignalR;

namespace Demo_WarningMonitor.Api.SignalRHubs
{
    /// <summary>
    /// 报警广播
    /// </summary>
    public class WarningBroadcastHub : Hub
    { 
        private ILogger<WarningBroadcastHub> logger; 

        public WarningBroadcastHub(ILogger<WarningBroadcastHub> logger, IConfiguration configuration)
        {
            this.logger = logger; 
        }

        public async Task SendMessage(string user, string message)
        {
            try
            {
                await Clients.All.SendAsync("ReceiveMessage", user, message);
            }
            catch (Exception ex)
            {
                logger.LogError(ex,"发送消息出现异常");
            }
          
        }
    }
}

结束语

到此为止一个服务端就做完了,运行起来也是看不到任何效果的。那么如何才能看到效果呢,请看下一篇文章

SignalR javascript 客户端文章来源地址https://www.toymoban.com/news/detail-493149.html

到了这里,关于NetCore_signalR服务端的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ASP.NET Core SignalR 系列(二)- 中心(服务端)

    本章将和大家分享 ASP.NET Core SignalR 中的中心(服务端)。 本文大部分内容摘自微软官网:https://learn.microsoft.com/zh-cn/aspnet/core/signalr/hubs?view=aspnetcore-7.0 废话不多说,我们直接来看一个Demo,Demo的目录结构如下所示: 本Demo的Web项目为ASP.NET Core Web 应用程序( 目标框架为.NET 7.0

    2024年02月13日
    浏览(33)
  • 【ASP.NET Core】使用SignalR推送服务器日志

    一个多月前接手了一个产线机器人项目,上位机以读写寄存器的方式控制机器人,服务器就是用 ASP.NET Core 写的 Web API。由于前一位开发者写的代码质量问题,导致上位机需要16秒才能启动。经过我近一个月的改造,除了保留业务逻辑代码,其他的基本重写。如今上位机的启动

    2024年02月03日
    浏览(44)
  • NetCore部署微服务(三)

    接上文,服务端部署完成之后,同样我们也需要修改一下客户端代码 1.1 服务发现 在客户端代码中使用Nuget安装consul包  修改配置文件,我们首先需要把consul的请求地址配置在配置文件中 修改control方法  OK,通过如下修改,我们发现,我们不需要再在代码中配置请求地址,请

    2024年02月02日
    浏览(25)
  • windows系统服务器在不解锁屏幕不输入密码的前提下,电脑通电开机启动程序。

    在控制面板中找到“管理工具”中的 “任务计划程序”,打开“任务计划程序”窗口。如图:   双击打开任务计划程序,空白出右键创建基本任务,或者点击最右侧的创建基本任务。  输入名称,点击下一步。 先选择计算机启动时,后面会进行改动;点击下一步。 选择启动

    2024年02月04日
    浏览(36)
  • NetCore下WebApi的后台服务BackgroundService

    引言:最近发现个好东西就是 BackgroundService ,以前一直没注意到。个人理解它就是在你的后台开了一个子线程运行你的其他业务逻辑。 先上代码: 还需要在startup里面注册一下: 应用场景:定时提醒。

    2024年02月10日
    浏览(31)
  • 本文通过实例介绍了Redis的基础知识、数据类型、数据结构以及典型应用场景 值得一看!

    作者:禅与计算机程序设计艺术 2017年,Redis是基于MIT许可发布的一个开源的高性能键值数据库,其开发语言为C语言。它提供了多种数据类型(strings、hashes、lists、sets、sorted sets等),分布式支持(可横向扩展),内存存储,持久化功能,事务处理功能等。作为一种高性能的

    2024年02月06日
    浏览(50)
  • nacos实现Java和.NetCore的服务注册和调用

    用nacos作为服务注册中心,如何注册.NetCore服务,如何在Java中调用.NetCore服务呢?可以分为下面几个步骤:   0.运行nacos   1.开发.net core服务,然后调用nacos提供的.net core sdk注册服务。   2.开发Java服务,然后注册服务。   3.用RestTemplate调用.net core服务。   4.用OpenFeign调用服务

    2024年01月17日
    浏览(34)
  • 项目发布部署:如何发布.NETCore项目到IIS服务器?

    前言:本文将详细介绍如何发布.NET Core项目到IIS服务器。首先,第一步需要安装IIS,介绍了在本地电脑和服务器中进行安装。然后需要安装SDK和运行时才能发布.NETCore项目。其次介绍了如何发布.NETCore项目和Vue项目,并配置IIS。最后介绍了如何将项目部署到Service服务中。 (

    2024年02月13日
    浏览(42)
  • .NetCore gRpc 客户端与服务端的单工通信Demo

    方式一 使用vs 2022(也可以是其他版本)创建一个grpc的服务,如下这样 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uipEG9Xu-1687172462785)(C:UsersAdministratorAppDataRoamingTyporatypora-user-imagesimage-20230619183828284.png)] 简单方便,创建项目后的目录结构如下图

    2024年02月09日
    浏览(42)
  • 服务端使用ASP.NET Core SignalR与Vue3(TypeScript与JavaScript)前端建立通信(以进度条为例)

    1. ASP.NET Core           ASP.NET Core 是一个跨平台、高性能及开源的框架,用于生成基于云且连接互联网的新式应用程式。 官方文档:ASP.NET documentation | Microsoft Learn  2.  ASP.NET Core SignalR         ASP.NET Core SignalR 是开源库,用于服务端与客户端建立实时通信,可以自动管理连接

    2024年02月06日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包