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

十三、Net Core6 SignalR入門(mén)(一)

這篇具有很好參考價(jià)值的文章主要介紹了十三、Net Core6 SignalR入門(mén)(一)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

使用 ASP.NET Core SignalR 中的中心 | Microsoft Docs了解如何使用 ASP.NET Core SignalR 中的中心。https://docs.microsoft.com/zh-cn/aspnet/core/signalr/hubs?view=aspnetcore-6.0ASP.NET Core SignalR JavaScript 客戶(hù)端 | Microsoft DocsASP.NET Core SignalR JavaScript 客戶(hù)端概述。https://docs.microsoft.com/zh-cn/aspnet/core/signalr/javascript-client?view=aspnetcore-6.0&viewFallbackFrom=aspnetcore-2.2&tabs=visual-studio一、創(chuàng)建Web API項(xiàng)目

十三、Net Core6 SignalR入門(mén)(一)

二、新建ChatHub.cs類(lèi),并寫(xiě)好向所有客戶(hù)端發(fā)送消息的方法

調(diào)用依賴(lài)于保持活動(dòng)狀態(tài)的中心的異步方法時(shí)請(qǐng)使用?await。 例如,如果在沒(méi)有?await?的情況下進(jìn)行調(diào)用,則?Clients.All.SendAsync(...)?這類(lèi)方法會(huì)失敗,并且中心方法會(huì)在?SendAsync?完成之前完成、代碼如下

 public class ChatHub : Hub
    {
        /// <summary>
        /// 向所有客戶(hù)端發(fā)送消息
        /// </summary>
        /// <param name="user"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public async Task SendMessage(string user, string message) => await Clients.All.SendAsync("ReceiveMessage", user, message);
        
    }

?注: 這里的?ReceiveMessage 字符串參數(shù)? 是提供給前端監(jiān)聽(tīng)的方法名稱(chēng) ,可自定義

?三、注冊(cè)中心所需的SignalR服務(wù)和終結(jié)點(diǎn),打開(kāi)Program.cs,添加兩處?※※※ SignalR ※※※ 代碼

和處理跨域,記住跨域不能默認(rèn)*,需要指定客戶(hù)端地址,否則跨域問(wèn)題還是存在

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();


// ※※※ SignalR ※※※ 
builder.Services.AddCors(options =>
{
    options.AddDefaultPolicy(
        builder =>
        {
            builder.WithOrigins("http://192.168.5.73:8848")
                .AllowAnyHeader()
                .WithMethods("GET", "POST")
                .AllowCredentials();
        });
});
builder.Services.AddSignalR();
// ※※※ SignalR ※※※ 


var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseAuthorization();

app.MapControllers();

//※※※ SignalR ※※※ 
app.UseCors();
app.MapHub<ChatHub>("/Chat");
// ※※※ SignalR ※※※ 

app.Run();

四、修改launchSettings.json配置文件十三、Net Core6 SignalR入門(mén)(一)?

接下來(lái)了解客戶(hù)端怎樣調(diào)用接收SignalR中心方法

一、引入signalr.js

npm init -y
npm install @microsoft/signalr

npm 將包內(nèi)容安裝在 node_modules\@microsoft\signalr\dist\browser 文件夾中。將?signalr.js?文件引用到你的項(xiàng)目。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<style>

		</style>
	</head>
	<body>
		<div id="content">

		</div>
		<br />
		<input type="text" id="name" /><br />
		<textarea id="msg"></textarea>
		<button onclick="send()">發(fā)送</button>
		<script src="signalr.min.js"></script>
		<script>
			getName();//獲取隨機(jī)名字
			
			//連接SignalR中心
			//withUrl 這里要和后端 launchSettings.json---profiles---SignalR---applicationUrl對(duì)應(yīng),否則無(wú)法握手,
			//最后跟上Program.cs配置的名字, app.MapHub<ChatHub>("/Chat");
			const connection = new signalR.HubConnectionBuilder()
				.withUrl("http://192.168.5.73:5196/Chat")
				.build();
			 
			//連接方法,如果連接失敗,5s后重新連接
			async function start() {
				try {
					await connection.start();
					console.log("連接成功.");
				} catch (err) {
					console.log(err);
					setTimeout(start, 5000);
				}
			};
			
			//如果連接斷開(kāi),嘗試重新連接
			connection.onclose(async () => {
				await start();
			});

			// 開(kāi)始連接.
			start();

			const all = (user, message) => {
				try {
					//調(diào)用中心的SendMessage方法
					connection.send("SendMessage", user, message);
				} catch (err) {
					console.error(err);
				}
			}

			const send = () => {
				var user = document.getElementById("name").value;
				var msg = document.getElementById("msg").value;
				all(user, msg);
			}
			
			//ReceiveMessage 與后端對(duì)應(yīng) ,接收中心發(fā)來(lái)的消息
			connection.on("ReceiveMessage", (user, message) => {
				var son = document.createElement("p");
				son.innerHTML = `${user}: ${message}`;
				document.getElementById("content").appendChild(son);
			});


			function getName() {
				var familyNames = new Array(
					"趙", "錢(qián)", "孫", "李", "周", "吳", "鄭", "王", "馮", "陳",
					"褚", "衛(wèi)", "蔣", "沈", "韓", "楊", "朱", "秦", "尤", "許",
					"何", "呂", "施", "張", "孔", "曹", "嚴(yán)", "華", "金", "魏",
					"陶", "姜", "戚", "謝", "鄒", "喻", "柏", "水", "竇", "章",
					"云", "蘇", "潘", "葛", "奚", "范", "彭", "郎", "魯", "韋",
					"昌", "馬", "苗", "鳳", "花", "方", "俞", "任", "袁", "柳",
					"酆", "鮑", "史", "唐", "費(fèi)", "廉", "岑", "薛", "雷", "賀",
					"倪", "湯", "滕", "殷", "羅", "畢", "郝", "鄔", "安", "常",
					"樂(lè)", "于", "時(shí)", "傅", "皮", "卞", "齊", "康", "伍", "余",
					"元", "卜", "顧", "孟", "平", "黃", "和", "穆", "蕭", "尹"
				);
				var givenNames = new Array(
					"子璇", "淼", "國(guó)棟", "夫子", "瑞堂", "甜", "敏", "尚", "國(guó)賢", "賀祥", "晨濤",
					"昊軒", "易軒", "益辰", "益帆", "益冉", "瑾春", "瑾昆", "春齊", "楊", "文昊",
					"東東", "雄霖", "浩晨", "熙涵", "溶溶", "冰楓", "欣欣", "宜豪", "欣慧", "建政",
					"美欣", "淑慧", "文軒", "文杰", "欣源", "忠林", "榕潤(rùn)", "欣汝", "慧嘉", "新建",
					"建林", "亦菲", "林", "冰潔", "佳欣", "涵涵", "禹辰", "淳美", "澤惠", "偉洋",
					"涵越", "潤(rùn)麗", "翔", "淑華", "晶瑩", "凌晶", "苒溪", "雨涵", "嘉怡", "佳毅",
					"子辰", "佳琪", "紫軒", "瑞辰", "昕蕊", "萌", "明遠(yuǎn)", "欣宜", "澤遠(yuǎn)", "欣怡",
					"佳怡", "佳惠", "晨茜", "晨璐", "運(yùn)昊", "汝鑫", "淑君", "晶瀅", "潤(rùn)莎", "榕汕",
					"佳鈺", "佳玉", "曉慶", "一鳴", "語(yǔ)晨", "添池", "添昊", "雨澤", "雅晗", "雅涵",
					"清妍", "詩(shī)悅", "嘉樂(lè)", "晨涵", "天赫", "?傲", "佳昊", "天昊", "萌萌", "若萌"
				);

				var i = parseInt(10 * Math.random()) * 10 + parseInt(10 * Math.random());
				var familyName = familyNames[i];

				var j = parseInt(10 * Math.random()) * 10 + parseInt(10 * Math.random());
				var givenName = givenNames[i];

				var name = familyName + givenName;
				document.getElementById("name").value = name;
			}
		</script>
	</body>
</html>

二、運(yùn)行服務(wù)和客戶(hù)端,開(kāi)啟兩個(gè)客戶(hù)端頁(yè)面,測(cè)試成功

十三、Net Core6 SignalR入門(mén)(一)?

?但這是針對(duì)所有在線客戶(hù)端發(fā)送消息,下一篇講針對(duì)群組和個(gè)人發(fā)送消息文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-463731.html

到了這里,關(guān)于十三、Net Core6 SignalR入門(mén)(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

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

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

    2024年02月09日
    瀏覽(39)
  • 什么是 ASP.NET Core SignalR?

    所有連接了 Internet 的應(yīng)用程序都由服務(wù)器和客戶(hù)端組成。 客戶(hù)端依賴(lài)于服務(wù)器獲取數(shù)據(jù),而它們獲取數(shù)據(jù)的主要機(jī)制是通過(guò)發(fā)出超文本傳輸協(xié)議 (HTTP) 請(qǐng)求來(lái)進(jìn)行的。 某些客戶(hù)端應(yīng)用程序需要經(jīng)常更改的數(shù)據(jù)。 ASP.NET Core SignalR 提供了一個(gè) API,用于創(chuàng)建服務(wù)器到客戶(hù)端遠(yuǎn)程過(guò)

    2024年02月15日
    瀏覽(92)
  • asp.net core6 webapi 使用反射批量注入接口層和實(shí)現(xiàn)接口層的接口的類(lèi)到ioc中

    IBLL接口層類(lèi)庫(kù) BLL實(shí)現(xiàn)接口層類(lèi)庫(kù) program中利用反射批量注入 在控制器中使用構(gòu)造函數(shù)傳參就可以調(diào)用已經(jīng)注冊(cè)的所有是是實(shí)現(xiàn)接口的類(lèi)了的實(shí)列了

    2024年02月13日
    瀏覽(24)
  • ASP.NET Core實(shí)時(shí)庫(kù)SignalR簡(jiǎn)單應(yīng)用

    ASP.NET Core實(shí)時(shí)庫(kù)SignalR簡(jiǎn)單應(yīng)用

    SignalR 是用于構(gòu)建需要實(shí)時(shí)用戶(hù)交互或?qū)崟r(shí)數(shù)據(jù)更新的Web 應(yīng)用程序的一個(gè)開(kāi)放源代碼.NET 庫(kù)。不僅僅用在Web應(yīng)用中,后面會(huì)講到它的應(yīng)用范圍。它簡(jiǎn)化了簡(jiǎn)化了構(gòu)建實(shí)時(shí)應(yīng)用程序的過(guò)程,包括 ASP.NET Server 庫(kù)和 JavaScript Client 庫(kù),以便管理Client與Server連接并將內(nèi)容更新推送給Cl

    2024年02月11日
    瀏覽(23)
  • ASP.NET Core SignalR 系列(二)- 中心(服務(wù)端)

    ASP.NET Core SignalR 系列(二)- 中心(服務(wù)端)

    本章將和大家分享 ASP.NET Core SignalR 中的中心(服務(wù)端)。 本文大部分內(nèi)容摘自微軟官網(wǎng):https://learn.microsoft.com/zh-cn/aspnet/core/signalr/hubs?view=aspnetcore-7.0 廢話不多說(shuō),我們直接來(lái)看一個(gè)Demo,Demo的目錄結(jié)構(gòu)如下所示: 本Demo的Web項(xiàng)目為ASP.NET Core Web 應(yīng)用程序( 目標(biāo)框架為.NET 7.0

    2024年02月13日
    瀏覽(95)
  • 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 廢話不多說(shuō),下面我們直接進(jìn)入本章主題。 中心篩選器: 在 ASP.NET Core 5.0 或更高版本中可用。 允許在客戶(hù)端調(diào)用中心方法之

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

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

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

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

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

    本章將和大家分享 ASP.NET Core SignalR 中的 JavaScript 客戶(hù)端。ASP.NET Core SignalR JavaScript 客戶(hù)端庫(kù)使開(kāi)發(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 廢話不多說(shuō),下面我們

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

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

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

    2024年02月06日
    瀏覽(22)
  • .NET Core6.0使用NPOI導(dǎo)入導(dǎo)出Excel

    .NET Core6.0使用NPOI導(dǎo)入導(dǎo)出Excel

    一、使用NPOI導(dǎo)出Excel //引入NPOI包 HTML JS C# 二、使用NPOI導(dǎo)入Excel HTML JS C# 控制器代碼 添加ExcelHelper類(lèi) 添加Extensions類(lèi) 添加實(shí)體類(lèi)UserEntity,要跟Excel的列名一致 Excel模板 實(shí)現(xiàn)效果

    2024年02月12日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包