国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

asp.net core之實時應(yīng)用

這篇具有很好參考價值的文章主要介紹了asp.net core之實時應(yīng)用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本文將介紹ASP.NET Core SignalR,這是一個強大的實時通信庫,用于構(gòu)建實時、雙向通信應(yīng)用程序。我們將探討SignalR的基本概念、架構(gòu)和工作原理,并提供一些示例代碼來幫助讀者更好地理解和使用SignalR。
ASP.NET Core SignalR提供了一種簡單而強大的方式來構(gòu)建實時通信應(yīng)用程序。SignalR支持多種傳輸方式,包括WebSockets、Server-Sent Events和長輪詢,以確保在各種環(huán)境下實現(xiàn)實時通信。

SignalR基礎(chǔ)知識

SignalR是一個開源的ASP.NET Core庫,用于構(gòu)建實時、雙向通信應(yīng)用程序。它允許服務(wù)器端代碼主動向客戶端推送數(shù)據(jù),而不需要客戶端發(fā)起請求。SignalR提供了一種簡單的編程模型,使開發(fā)人員可以輕松地實現(xiàn)實時通信功能。
在使用SignalR之前,我們需要了解一些核心概念:

  • Hub:Hub是SignalR的核心組件,它負(fù)責(zé)處理客戶端和服務(wù)器之間的通信。開發(fā)人員可以定義自己的Hub類,并在其中定義可以由客戶端調(diào)用的方法。
  • 連接:連接表示客戶端與服務(wù)器之間的連接。每個連接都有一個唯一的連接ID,用于標(biāo)識特定的客戶端。
  • 客戶端:客戶端是使用SignalR庫的應(yīng)用程序的一部分。客戶端可以是Web瀏覽器、移動應(yīng)用程序或其他支持SignalR的客戶端。
  • 傳輸:傳輸是指SignalR用于在客戶端和服務(wù)器之間傳輸數(shù)據(jù)的方式。SignalR支持多種傳輸方式,包括WebSockets、Server-Sent Events和長輪詢。

SignalR架構(gòu)和工作原理

SignalR的架構(gòu)由以下幾個核心組件組成:

  • 服務(wù)器:服務(wù)器端負(fù)責(zé)處理客戶端的連接、消息傳遞和狀態(tài)管理。
  • 客戶端:客戶端負(fù)責(zé)與服務(wù)器建立連接,并接收來自服務(wù)器的消息。
  • 傳輸:傳輸層負(fù)責(zé)在客戶端和服務(wù)器之間傳輸數(shù)據(jù)。SignalR支持多種傳輸方式,可以根據(jù)環(huán)境自動選擇最佳的傳輸方式。


SignalR的工作原理可以概括為以下幾個步驟:

  1. 客戶端發(fā)起連接請求。
  2. 服務(wù)器接受連接請求,并為該連接分配一個唯一的連接ID。
  3. 客戶端與服務(wù)器建立連接。
  4. 客戶端和服務(wù)器通過連接ID進行通信。
  5. 服務(wù)器可以主動向客戶端推送消息。
  6. 客戶端可以調(diào)用服務(wù)器端的方法。

使用SignalR構(gòu)建實時應(yīng)用程序

為了更好地理解和使用SignalR,我們將通過一個簡單的示例來演示如何構(gòu)建一個實時聊天應(yīng)用程序。
首先,我們需要創(chuàng)建一個ASP.NET Core Web應(yīng)用程序??梢允褂肰isual Studio或者命令行工具創(chuàng)建一個新的ASP.NET Core項目。
在ASP.NET Core高版本中AspNetCore.App默認(rèn)已經(jīng)內(nèi)置了SingalR,直接就可以使用。

創(chuàng)建一個ASP.NET Core空模板,接下來,我們需要創(chuàng)建一個繼承自Hub類的Hub。在這個Hub中,我們將定義可以由客戶端調(diào)用的方法。以下是一個簡單的示例:

using Microsoft.AspNetCore.SignalR;

namespace LearnSignalR
{
    public class ChatHub : Hub
    {
        public async Task SendMessage(string user, string message)
        {
            await Clients.All.SendAsync("ReceiveMessage", user, message);
        }

        public override async Task OnConnectedAsync()
        {
            Console.WriteLine($"{Context.ConnectionId} Connected");
            await Clients.Caller.SendAsync("ReceiveMessage", "System", "Hello");
        }
    }
}


在Program.cs文件中,我們需要配置SignalR中間件。添加以下代碼:

using LearnSignalR;
var builder = WebApplication.CreateBuilder(args);

builder.Services.AddSignalR();

var app = builder.Build();

app.MapHub<ChatHub>("/chat");

app.MapGet("/", () => "Hello World!");

app.Run();

創(chuàng)建一個Console控制臺項目測試連接SignalR Hub。需要安裝Microsoft.AspNetCore.SignalR.Client的Nuget包。
在客戶端,我們可以使用JavaScript來連接到SignalR Hub,并與服務(wù)器進行通信。以下是一個簡單的示例:

using Microsoft.AspNetCore.SignalR.Client;

var connection = new HubConnectionBuilder()
    .WithUrl("http://localhost:5192/chat")
    .Build();

connection.On<string, string>("ReceiveMessage", (user, message) =>
{
  var newMessage = $"{user}: {message}";
  Console.WriteLine($"{DateTime.Now}---{newMessage}");
});
await connection.StartAsync();

Thread.Sleep(int.MaxValue);

現(xiàn)在,我們可以運行應(yīng)用程序。當(dāng)一個客戶端連接時立馬會受到服務(wù)端發(fā)出的信息。
asp.net core之實時應(yīng)用
接下來改造一下控制臺程序,使它可以發(fā)送消息。

using Microsoft.AspNetCore.SignalR.Client;

var connection = new HubConnectionBuilder()
    .WithUrl("http://localhost:5192/chat")
    .Build();

connection.On<string, string>("ReceiveMessage", (user, message) =>
{
    var newMessage = $"{user}: {message}";
    Console.WriteLine($"{DateTime.Now}---{newMessage}");
});
await connection.StartAsync();
Console.WriteLine("SetName:");
var userName = Console.ReadLine();
while (true)
{
    Console.WriteLine("Message:");
    var message = Console.ReadLine();
    await connection.InvokeAsync("SendMessage", userName, message);
}

測試效果??梢钥吹娇蛻舳苏=邮蘸桶l(fā)送消息。
asp.net core之實時應(yīng)用

總結(jié)

本文詳細介紹了ASP.NET Core SignalR的基本概念、架構(gòu)和工作原理,并通過一個實時聊天應(yīng)用程序的示例演示了如何使用SignalR構(gòu)建實時應(yīng)用程序。SignalR提供了一種簡單而強大的方式來實現(xiàn)實時通信,可以在各種應(yīng)用場景中發(fā)揮作用。通過深入了解SignalR,開發(fā)人員可以更好地利用其功能來構(gòu)建實時、雙向通信的應(yīng)用程序。

歡迎進群催更。

asp.net core之實時應(yīng)用文章來源地址http://www.zghlxwxcb.cn/news/detail-623778.html

到了這里,關(guān)于asp.net core之實時應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • ASP.NET Core SignalR 系列(四)- 中心篩選器

    本章將和大家分享 ASP.NET Core SignalR 中的中心篩選器。 本文大部分內(nèi)容摘自微軟官網(wǎng):https://learn.microsoft.com/zh-cn/aspnet/core/signalr/hub-filters?view=aspnetcore-7.0 廢話不多說,下面我們直接進入本章主題。 中心篩選器: 在 ASP.NET Core 5.0 或更高版本中可用。 允許在客戶端調(diào)用中心方法之

    2024年02月16日
    瀏覽(101)
  • 【ASP.NET Core】使用SignalR推送服務(wù)器日志

    【ASP.NET Core】使用SignalR推送服務(wù)器日志

    一個多月前接手了一個產(chǎn)線機器人項目,上位機以讀寫寄存器的方式控制機器人,服務(wù)器就是用 ASP.NET Core 寫的 Web API。由于前一位開發(fā)者寫的代碼質(zhì)量問題,導(dǎo)致上位機需要16秒才能啟動。經(jīng)過我近一個月的改造,除了保留業(yè)務(wù)邏輯代碼,其他的基本重寫。如今上位機的啟動

    2024年02月03日
    瀏覽(23)
  • ASP.NET Core+Vue3 實現(xiàn)SignalR通訊

    ASP.NET Core+Vue3 實現(xiàn)SignalR通訊

    從ASP.NET Core 3.0版本開始,SignalR的Hub已經(jīng)集成到了ASP.NET Core框架中。因此,在更高版本的ASP.NET Core中,不再需要單獨引用Microsoft.AspNetCore.SignalR包來使用Hub。 在項目創(chuàng)建一個類繼承Hub, 首先是寫一個CreateConnection方法 ConnectionId是SignalR中標(biāo)識的客戶端連接的唯一標(biāo)識符, 將userId和

    2024年02月06日
    瀏覽(24)
  • ASP.NET Core SignalR 系列(三)- JavaScript 客戶端

    ASP.NET Core SignalR 系列(三)- JavaScript 客戶端

    本章將和大家分享 ASP.NET Core SignalR 中的 JavaScript 客戶端。ASP.NET Core SignalR JavaScript 客戶端庫使開發(fā)人員能夠調(diào)用服務(wù)器端SignalR中心代碼。 本文大部分內(nèi)容摘自微軟官網(wǎng):https://learn.microsoft.com/zh-cn/aspnet/core/signalr/javascript-client?view=aspnetcore-7.0tabs=visual-studio 廢話不多說,下面我們

    2024年02月15日
    瀏覽(99)
  • Web SSH 的原理與在 ASP.NET Core SignalR 中的實現(xiàn)

    Web SSH 的原理與在 ASP.NET Core SignalR 中的實現(xiàn)

    有個項目,需要在前端有個管理終端可以 SSH 到主控機的終端,如果不考慮用戶使用 vim 等需要在控制臺內(nèi)現(xiàn)實界面的軟件的話,其實使用 Process 類型去啟動相應(yīng)程序就夠了。而這次的需求則需要考慮用戶會做相關(guān)設(shè)置。 這里用到的原理是偽終端。偽終端(pseudo terminal)是現(xiàn)

    2024年02月07日
    瀏覽(20)
  • 微信小程序如何使用原生Websocket與Asp.Net Core SignalR 通信

    微信小程序如何使用原生Websocket與Asp.Net Core SignalR 通信

    如題,這可能算是.net 做小程序的服務(wù)端時,繞不開的一個問題,老生常談了。同樣的問題,我記得我2018/19年的一個項目的解決方案是: 修改官方的SignalR.js的客戶端 :把里面用到瀏覽器的Websocket改成微信小程序的官方api的。目前網(wǎng)上也有不少這樣的方案,已經(jīng)改好開源了;

    2024年02月08日
    瀏覽(129)
  • 微信小程序如何使用原生Websocket api與Asp.Net Core SignalR 通信

    微信小程序如何使用原生Websocket api與Asp.Net Core SignalR 通信

    如題,這可能算是.net 做小程序的服務(wù)端時,繞不開的一個問題,老生常談了。同樣的問題,我記得我2018/19年的一個項目的解決方案是: 修改官方的SignalR.js的客戶端 :把里面用到瀏覽器的Websocket改成微信小程序的官方api的。目前網(wǎng)上也有不少這樣的方案,已經(jīng)改好開源了;

    2024年02月09日
    瀏覽(39)
  • 服務(wù)端使用ASP.NET Core SignalR與Vue3(TypeScript與JavaScript)前端建立通信(以進度條為例)

    服務(wù)端使用ASP.NET Core SignalR與Vue3(TypeScript與JavaScript)前端建立通信(以進度條為例)

    1. ASP.NET Core ? ? ? ? ? ASP.NET Core 是一個跨平臺、高性能及開源的框架,用于生成基于云且連接互聯(lián)網(wǎng)的新式應(yīng)用程式。 官方文檔:ASP.NET documentation | Microsoft Learn ?2.? ASP.NET Core SignalR ? ? ? ? ASP.NET Core SignalR 是開源庫,用于服務(wù)端與客戶端建立實時通信,可以自動管理連接

    2024年02月06日
    瀏覽(22)
  • ASP.NET Core 中使用 WebSocket 協(xié)議進行實時通信

    介紹 在 ASP.NET Core 中使用 WebSocket 協(xié)議創(chuàng)建實時通信的完整示例涉及幾個步驟。在此示例中,我們將創(chuàng)建一個簡單的聊天應(yīng)用程序,用戶可以在其中實時發(fā)送和接收消息。此示例假設(shè)您對 ASP.NET Core 和 C# 有基本了解。 步驟1.創(chuàng)建一個新的ASP.NET Core項目 首先,使用 Visual Studio 或

    2024年01月25日
    瀏覽(28)
  • ASP.NET Core MVC -- 將視圖添加到 ASP.NET Core MVC 應(yīng)用

    ASP.NET Core MVC -- 將視圖添加到 ASP.NET Core MVC 應(yīng)用

    右鍵單擊“視圖”文件夾,然后單擊“添加”“新文件夾”,并將文件夾命名為“HelloWorld”。 右鍵單擊“Views/HelloWorld”文件夾,然后單擊“添加”“新項”。 在“添加新項 - MvcMovie”對話框中: 在右上角的搜索框中,輸入“視圖” 選擇“Razor 視圖 - 空” 保持“名稱”框的

    2024年02月13日
    瀏覽(127)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包