.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");
    });

    ```

    业务端

    相关文档

  • 创建连接对象
    ``` 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 - 实现一个业务推送系统
下一篇.net core 3.0 Signalr - 02 使用强类型的Hub
源码地址源码
官方文档官方文档

二维码

转载于:https://www.cnblogs.com/xiexingen/p/11626389.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值