.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

    public class NotifyHub : Hub
    {
    
    }
    
  • 修改Startup中的ConfigServices方法,注冊對應的服務

    // 添加Signalr
    services.AddSignalR(config =>
    {
        // _webEnv為通過依賴注入在Startup的構造函數中注入的 IWebHostEnvironment
        if (_webEnv.IsDevelopment())
        {
            config.EnableDetailedErrors = true;
        }
    });
    
  • 修改Configure配置HTTP請求的管道

    ...
    app.UseRouting();
    app.UseEndpoints(endpoints =>{
        endpoints.MapHub<NotifyHub>("/notify-hub");
    });
    
    

業務端

相關文檔

  • 創建連接對象
    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
源碼地址 源碼
官方文檔 官方文檔

二維碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM