ABP SignalR 中心外部调用发送消息

SignalR中心

1.引用包

<PackageReference Include="Microsoft.AspNet.SignalR.Core" Version="2.4.2" />

2.在XXXHttpApiHostModule配置


		public override void ConfigureServices(ServiceConfigurationContext context)
		{
			ConfigureSignalRServer(context);
		}

		private void ConfigureSignalRServer(ServiceConfigurationContext context)
		{
			context.Services.AddTransient<SignalRHub>();
			context.Services.AddHostedServer<SignalServeice>(); //后台服务托管
		}

        public override void OnApplicationInitialization(ApplicationInitializationContext context)
        {
          /**
          省略上面的配置 注意App.UseAuthentication()在上,app.UseAuthorization()在下
          */
          var app = context.GetApplicationBuilder();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapHub<ClockHub>("/push");
            });
        }
    

3.SignalRHub.cs代码

在这里插入图片描述
在OnContextedAsync方法里 有Context对象 可以获取Context.ContentionId和Context.GetHttpContext().Request.QueryString.Value,来处理自己的业务
SendMessage方法 await Clients.All.ReceiveMessage(“业务参数”) ,或者其他的方法 如下:在这里插入图片描述
参考连接: https://www.cnblogs.com/gouguo/p/6421890.html

4.SignalServeice.cs代码

在这里插入图片描述
在ExecuteAsync方法里面执行 await _hubContext.Clients.All.ReceiveMessage(“自己业务参数”),ReceiveMessage方法是下面定义的接口方法,也是客户端调用的方法.
通过使用 Hub ,可以对客户端方法进行编译时检查。 这可以防止由于使用神奇字符串而导致的问题,因为 Hub 只能提供对在接口中定义的方法的访问.
使用强类型 Hub 禁用功能 SendAsync 。 接口上定义的任何方法仍可以定义为异步方法。 事实上,其中每个方法应返回 Task 。 由于它是一个接口,因此请勿使用 async 关键字.

5.ISignalRClient.cs代码

在这里插入图片描述

SignalR客户端

引用包

 <PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="3.1.2" />

在这里插入图片描述

ConnectionSignalRServer 方法可供外部服务调用

SignalR中心以外服务

可以调用上面 ConnectionSignalRServer 方法可供外部服务调用

结语

好几下不如烂笔头, 如有问题请大神们多指教!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值