成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在 ASP.Net Core 中使用 SignalR

開發 前端
SignalR for ASP.Net Core 是 SignalR 的浴火重生版,允許你在 ASP.Net Core 中實現實時通訊,這里的 實時 意味著雙方都能快速的感知對方發來的消息,比如:一旦 server 端有需要推送的內容將會直接 push 到 client,這和原始的 http 單向請求有著本質的區別。

[[381125]]

SignalR for ASP.Net Core 是 SignalR 的浴火重生版,允許你在 ASP.Net Core 中實現實時通訊,這里的 實時 意味著雙方都能快速的感知對方發來的消息,比如:一旦 server 端有需要推送的內容將會直接 push 到 client,這和原始的 http 單向請求有著本質的區別。

值得注意的是, ASP.Net Core 版的 SingalR 移除了老版的諸多功能,比如:

  • 自動重連機制
  • 消息處理機制
  • 單連接多hub

不過無需擔心,新版的 SingalR 在健壯性和易用性上做了非常大的改進,總的來說,新版本已不兼容老版本,而且新的 SingalR 客戶端采用的是 TypeScript 。

安裝 SingalR

要想使用 SingalR,需要通過 nuget 引用 Microsoft.AspNetCore.SignalR 包,可以通過 Visual Studio 2019 的 NuGet package manager 可視化界面安裝 或者 通過 NuGet package manager 命令行工具輸入以下命令:

  1. Install-Package Microsoft.AspNetCore.SignalR 

使用 SignalR broadcast現在我們一起實現一下如何在 ASP.Net Core 應用程序中使用 SignalR 的廣播消息,那怎么做呢?創建一個自定義的 MessageHub 類并繼承類庫中的 Hub 基類,在 MessageHub 中定義一個 SendMessage 方法,該方法用于向所有已連接的客戶端發送消息,如下代碼所示:

  1. public class MessageHub : Hub 
  2.    { 
  3.        public async Task SendMessage(string user, string message) 
  4.        { 
  5.            await Clients.All.SendAsync("ReceiveMessage"user, message); 
  6.        } 
  7.    } 

配置 SignalR

要想在 ASP.Net Core 中使用 SignalR,只需在 Startup.ConfigureServices() 中調用擴展方法 AddSignalR() 將其注入到 ServiceCollection 中即可,如下代碼所示:

  1. public class Startup 
  2.    { 
  3.        public Startup(IConfiguration configuration) 
  4.        { 
  5.            Configuration = configuration; 
  6.        } 
  7.  
  8.        public IConfiguration Configuration { get; } 
  9.  
  10.        // This method gets called by the runtime. Use this method to add services to the container. 
  11.        public void ConfigureServices(IServiceCollection services) 
  12.        { 
  13.            services.AddSignalR(); 
  14.            services.AddControllersWithViews(); 
  15.        } 
  16.    } 

為了能夠啟用 MessageHub,需要在 Startup.Configure 方法中添加如下代碼:

  1. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 
  2.         { 
  3.             app.UseEndpoints(endpoints => 
  4.             { 
  5.                 endpoints.MapControllerRoute( 
  6.                     name"default"
  7.                     pattern: "{controller=Home}/{action=Index}/{id?}"); 
  8.  
  9.                 endpoints.MapHub<MessageHub>("/messagehub"); 
  10.             }); 
  11.         } 

創建 SignalR client

SignalR 的 client 是任意的,意味著它可以是 html, windowform, wpf,console 甚至是 java 程序,它們都可以消費 server 端發來的消息,接下來準備創建一個 Console 程序嘗試一下,那如何做呢?需要在 client 端引用 Microsoft.AspNetCore.SignalR.Client 和 System.Text.Encodings.Web 兩個nuget包,如下代碼所示:

  1. class Program 
  2.    { 
  3.        static async Task Main(string[] args) 
  4.        { 
  5.            HubConnection connection = new HubConnectionBuilder() 
  6.                .WithUrl("http://localhost:55215/messagehub"
  7.                .Build(); 
  8.  
  9.            connection.On<string, string>("ReceiveMessage", (user, message) => 
  10.            { 
  11.                var newMessage = $"{user}: {message}"
  12.  
  13.                Console.WriteLine(newMessage); 
  14.            }); 
  15.  
  16.            await connection.StartAsync(); 
  17.  
  18.            await connection.InvokeAsync("SendMessage""jack""hello,world"); 
  19.  
  20.            Console.ReadLine(); 
  21.        } 
  22.    } 

接下來就可以調試一下,分別啟動 server 和 client 端,如下圖所示:

server

 

client

 

譯文鏈接:https://www.infoworld.com/article/3267165/how-to-use-signalr-in-aspnet-core.html

責任編輯:武曉燕 來源: 碼農讀書
相關推薦

2021-03-10 09:40:43

LamarASP容器

2021-02-03 13:35:25

ASPweb程序

2021-02-28 20:56:37

NCache緩存框架

2021-01-07 07:39:07

工具接口 Swagger

2021-03-03 22:37:16

MediatR中介者模式

2021-01-28 22:39:35

LoggerMessa開源框架

2021-01-31 22:56:50

FromServiceASP

2021-03-17 09:45:31

LazyCacheWindows

2021-02-02 16:19:08

Serilog日志框架

2021-02-07 17:29:04

監視文件接口

2021-01-26 14:57:00

中間件應用模塊化

2021-04-12 07:03:10

輕量級模塊化框架

2021-01-04 05:44:54

框架日志

2021-06-22 16:59:56

微軟.NETC# 軟件開發

2017-10-20 08:52:11

內存緩存并發模式Linux

2022-08-01 08:00:00

開發工具跟蹤偵聽器

2009-02-05 14:02:46

SmtpMail發送郵件ASP.NET

2021-04-14 07:35:12

Json格式化日期

2009-03-30 10:34:03

ASP.NETMySQL

2021-11-01 14:52:38

ElasticSear索引SQL
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久精品一区 | 精品99久久久久久 | 久久免费精品 | 欧美一级在线观看 | 成年免费在线观看 | 欧美 日韩 综合 | 欧美自拍视频 | 浴室洗澡偷拍一区二区 | 国产中文字幕在线观看 | 91传媒在线观看 | 国产精品一区二区不卡 | 欧美日韩亚洲国产 | 国产一区高清 | 国产精品亚洲一区二区三区在线观看 | 国产一区二区三区在线免费 | 欧美一级二级视频 | 中文字幕精品一区久久久久 | 狠狠入ady亚洲精品经典电影 | 天堂精品 | 久久中文字幕视频 | 一区二区三区四区在线 | 一区二区三区亚洲 | 亚州精品成人 | 成人做爰9片免费看网站 | 精品久久影院 | 午夜爱爱网 | 久久国产精品久久国产精品 | 久久综合一区二区 | 国产视频福利在线观看 | 欧美一区二区三区精品免费 | 一区二区三区亚洲 | 欧美高清视频一区 | 日本三级视频 | 日韩中文字幕 | 免费能直接在线观看黄的视频 | 欧美激情久久久久久 | 天天干天天插 | 国产精品69毛片高清亚洲 | 免费看黄色视屏 | re久久| 国产成人精品一区二区三区四区 |