首页 > 其他分享 >Abp vNext+SignalR

Abp vNext+SignalR

时间:2024-08-18 22:05:30浏览次数:12  
标签:vNext http signalr Abp SignalR user message localhost

我的项目基于 ABP vNext (版本 8.2.0) + Blazor + SQL Server。从官网下载的模板默认不包含 SignalR,因此这里记录了如何在 ABP vNext 中集成 SignalR 实现实时通信的过程。以下是一个详细的集成步骤指南:

1. 安装所需的 NuGet 包

官方文档:https://abp.io/docs/latest/framework/real-time/signalr

在项目文件夹(.csproj 文件)中打开一个命令行窗口,然后键入以下命令:

abp add-package Volo.Abp.AspNetCore.SignalR

2. 创建 SignalR Hub

[HubRoute("/signalr-hubs/my-chat")]
public class MyChatHub : Hub { public async Task SendMessage(string user, string message) { await Clients.All.SendAsync("ReceiveMessage", user, message); } }

3. 创建前端客户端

const connection = new signalR.HubConnectionBuilder()
    //.withUrl("/my-chat")
  .withUrl("http://localhost:8011/signalr-hubs/my-chat") 
  .build();

connection.on("ReceiveMessage", (user, message) => {
    console.log(user + ": " + message);
});

connection.start().catch(err => console.error(err));

function sendMessage(user, message) {
    connection.invoke("SendMessage", user, message).catch(err => console.error(err));
}

* 前端如何需要通过WebSocket访问,可以在“XXX.XXX.Application”的XXXApplicationModule中加以下代码

public override void ConfigureServices(ServiceConfigurationContext context)
{
  Configure<AbpSignalROptions>(options =>
    {
            options.Hubs.Add(
                new HubConfig(typeof(MyChatHub),
                    "my-chat",
                    hubOptions =>
                    {
                        hubOptions.Transports = HttpTransportType.WebSockets;
                    }
                ));
      });
}

 * 默认是有跨域验证的,需要在appsettings.json文件中修改相关项(如果是跨域访问signalr)

{
    "App": {
        "SelfUrl": "http://localhost:8011",
        "RedirectAllowedUrls": "http://localhost:8011",
        "CorsOrigins": "https://*.Test.com,http://localhost:30001,http://localhost:8080"
    },
...
}

 

标签:vNext,http,signalr,Abp,SignalR,user,message,localhost
From: https://www.cnblogs.com/wz122889488/p/18366184

相关文章

  • Abp vNext+SqlServer+MySqlServer
    目前项目使用的是ABPvNext版本8.2.0加上SQLServer。由于业务需求,我们需要与MySQL数据库进行对接,这意味着项目的主要功能将继续使用SQLServer,而部分特定功能将需要与MySQL数据库交互。步骤1.在项目“XXX.XXX.EntityFrameworkCore”中安装MySql包dotnetaddpackag......
  • Asp.net core SignalR + Vue
    简介:ASP.NETSignalR是一个ASP.NET下的类库,可以在ASP.NET的Web项目中实现实时通信。本文主要讲述如何在Vue.js中使用SignalR,以及断开重连。知识点:前端SignalR的安装如何设置自动重新连接的次数SignalR有关连接的函数自动重连全部失败后,定时重连ASP.NETCORESig......
  • 初始化一个Abpvnext项目
    文章目录一、安装ABPCLI安装更新二、使用CLI创建项目命令解析官网连接三、调整项目结构四、配置统一返回结果1.创建响应码枚举2.创建响应实体3.创建响应实体(泛型)五、配置并使用统一返回结果过滤器1.创建NoWrapperAttribute2.创建ResultWrapperFilter3.在HttpApiHost......
  • ABP默认模板修改默认数据库类型并初始化数据库数据
    我这里以SQLite数据库为例,其他数据库类似。1.下载模板https://aspnetboilerplate.com/ 根据自己的需求选择版本和前端框架并填写项目名称,点击“Createmyproject!”即可下载一个ABP标准模板项目。  解压下载好的压缩包,找到目录:aspnet-core,接下来就可以用VS打开.sln......
  • ABP vNext—审计日志使用
    ABPvNext—审计日志关于审计日志开启审计日志如何自定义审计日志关于审计日志审计跟踪(也称为审核日志)是一个安全相关的时间顺序记录,记录这些记录的目的是为已经影响在任何时候的详细操作,提供程序运行的证明文件记录、源或事件。ABP提供了能够为应用程序交互自动记......
  • 【DDD实战】ABP vNext框架
    ABPvNext配置1.模块化配置(AbpModule)可支持API、UI扩展可随意整合和拆分定制化需求——options模块整合下面是三种配置依赖模块的方式,分别是引用式、插件式、nuget1.引用式模块需引用dll配置步骤:模块依赖——DependsOn(typeof(___Module))需避免循环依赖配......
  • abp框架必须移除的过滤器
    AbpExceptionFilter这个是abp默认异常处理过滤器,当我们需要统一返回结构时,需要移除AbpAutoValidateAntiforgeryTokenAttribute这个是abp身份验证过滤,当我们需要自定义jwt时需要移除移除代码示例:Configure<MvcOptions>(options=>{List<int>indexes=[];in......
  • abp 接入国产达梦8数据库
    1.修改数据库连接"Default":"server=host;port=5236;userid=ABP;password=1q2w3E*;database=ABP",建议用户名和数据库一样,后期便于处理2,添加达梦的ef库,sdk<PackageReferenceInclude="DM.Microsoft.EntityFrameworkCore"Version="3.1.0.20604&qu......
  • ABP之使用Hangfire
    首先ABP自带Hangfire,所以我们今天使用Volo.Abp.BackgroundJobs.HangFire1、在项目需要位置引入Nuget包(6.0.3)2、再引入基于内容的存储库:Hangfire.MemoryStorage(1.7.0)3、Hangfire.MemoryStorage不是abp封装的,所以可能会存在里面引用的Hangfire.Core版本和Volo.Abp.BackgroundJ......
  • YOLOv5改进 | 主干网络 | ODConv + ConvNeXt 增强目标特征提取能力
    秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 ......