1 新增对应的NuGet程序包

  步骤 右键项目 -> 管理NuGet程序包-> 安装对应程序包(如下)

 

 

 

2 新建 Hub中心类 (例子中命名 AGVInfoHub.cs)

 

 

 

 

 

 

 

3 在 Program.cs 中添加相应的改动

 

 

 

 

 

 

// 1 添加SignalR引用

using Microsoft.AspNetCore.SignalR;

// 2 添加SignalR中心类引用

using SignalR.AGVInfo;

// 3 往services添加SignalR服务

builder.Services.AddSignalR();

// 4 注册 路径的对应服务

app.MapHub<AGVInfoHub>(“/AGVInfoHub”);

// 5 在中间件 获取webapplication实例,转换成SignalR的中心类,再传进 对应需要调用的应用程序

app.Use(async (context, next) =>
{
var hubContext = context.RequestServices.GetRequiredService<IHubContext<AGVInfoHub>>();
new AcinetMessage(hubContext);
if (next != null)
{
await next.Invoke();
}
});

// 如果没做跨域处理,另外做跨域处理

app.UseCors(builder => {
builder.WithOrigins(“http://localhost:8080”)
.AllowAnyMethod()
.AllowCredentials()
.AllowAnyHeader();
});

 4 调用signalR的应用需要保存 从中间件传过来的context,并在需要的时候调用

 

 

 

 

 5 vue前端,npm安装signalR之后,在对应页面引用并接收信息

const signalR = require(‘@aspnet/signalr’);
initSignalR() {
      this.connection = new signalR.HubConnectionBuilder()
        .withUrl(‘http://localhost:58610/AGVInfoHub’, {}).build()
      this.connection.on(‘ConnectSucceeded’, data => {
        console.log(data);
      });
      this.connection.on(“ReceiveMessage”, function (message) {
        console.log(message);
      });
      this.connection.start()
    },

 

 

 

 

 

 

原文地址:http://www.cnblogs.com/ginobili-no1/p/16911054.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性