.net core 3.0 Signalr - 01 基础篇

因为将signalr作为单独的站点,此处需要建立两个项目,一个专门用于signalr作为推送项目,一个客户端(实际的业务项目) ## 基础知识速览 ### Clients对象属性 | 属性 | 描述 | :--- | :--- | All | 在所有连接的客户端上调用方法 | Caller | 在调用集线器方法的客户端上调用方法 | Others | 除当前连接外的所有连接 ### Clients对象方法 | 方法 | 描述 | :--- | :--- | AllExcept | 在所有连接的客户端(指定的连接除外)上调用方法 | Client | 在特定连接的客户端上调用方法(单个) | Clients | 在特定连接的客户端上调用方法(多个) | Group | 对指定组中的所有连接调用方法 | GroupExcept | 对指定组中的所有连接调用方法,指定的连接除外 | Groups | 在多组连接上调用方法 | OthersInGroup | 对一组连接调用方法,而不包括调用该集线器方法的客户端 | User | 对与特定用户关联的所有连接调用方法 | Users | 对与指定用户相关联的所有连接调用方法 ## Signalr推送端 - 通过命令行或者vs 2019新建.netcore web项目,选择.net core 3.0、webapi - 建立一个Hub ``` C# public class NotifyHub : Hub { } ``` - 修改Startup中的ConfigServices方法,注册对应的服务 ``` C# // 添加Signalr services.AddSignalR(config => { // _webEnv为通过依赖注入在Startup的构造函数中注入的 IWebHostEnvironment if (_webEnv.IsDevelopment()) { config.EnableDetailedErrors = true; } }); ``` - 修改Configure配置HTTP请求的管道 ``` C# ... app.UseRouting(); app.UseEndpoints(endpoints =>{ endpoints.MapHub ("/notify-hub"); }); ``` ## 业务端 [相关文档](https://docs.microsoft.com/zh-CN/aspnet/core/tutorials/signalr?view=aspnetcore-3.0&tabs=visual-studio) - 创建连接对象 ``` js var connection=new signalR.HubConnectionBuilder() .configureLogging(signalR.LogLevel.Error) // 前端控制台的日志级别,根据需要配置 .withUrl('http://localhost:50001/notify-hub') // 连接地址,这个地址是signalr项目的地址 .withAutomaticReconnect([0, 2000, 5000, 10000, 20000]) // 配置重连的时间 .build(); // 重连的时候触发 connection.onreconnecting(function (info) { console.info('----------------------------------signalr-- onreconnecting', info); }); //连接关闭的回调 connection.onclose(function (err) { console.info('--------------------------------signalr-- onclose', err); }); connection.start().then(function (data) { console.log('已成功连接到signalr服务器') }).catch(function (error) { console.error(error.toString()); }); ``` 更多内容请通过快速导航查看下一篇 ## 快速导航 | 标题 | 内容 | :--- | :--- | 索引 | [.net core 3.0 Signalr - 实现一个业务推送系统](https://blogs.xxgtalk.cn/2019/09/20/dotnetcore/signalr/00-introduct/) | 下一篇 | [.net core 3.0 Signalr - 02 使用强类型的Hub](https://blogs.xxgtalk.cn/2019/09/22/dotnetcore/signalr/02-type-hub/) | 源码地址 | [源码](https://github.com/xiexingen/CTS.Signalr) | 官方文档 | [官方文档](https://docs.microsoft.com/zh-CN/aspnet/core/?view=aspnetcore-3.0) ![二维码](https://img2018.cnblogs.com/blog/394514/201910/394514-20191005212520393-514945216.gif)

猜你喜欢

转载自www.cnblogs.com/xiexingen/p/11625828.html