1.ASP.NET Core认è¯åçåå®ç°
2.基于Vue(提供Vue2/Vue3版本)和.Net Core前后端分离、网站e网强大、源码跨平台的站源快速开发框架
3..netcore有哪些不错的开源项目?
4..NET core扫盲
5.c#.netframework和.netcore区别在哪?
6.webrtc使ç¨netcore
ASP.NET Core认è¯åçåå®ç°
é常å¨åºç¨ç¨åºä¸ï¼å®å ¨å为åå两个æ¥éª¤ï¼éªè¯åææãéªè¯è´è´£æ£æ¥å½å请æ±è ç身份ï¼èææåæ ¹æ®ä¸ä¸æ¥å¾å°ç身份å³å®å½å请æ±è æ¯å¦è½å¤è®¿é®ææçèµæºã
æ¢ç¶å®å ¨ä»éªè¯å¼å§ï¼æ们ä¹å°±ä»éªè¯å¼å§ä»ç»å®å ¨ã
æ们å ä»æ¯è¾ç®åçåºæ¯å¼å§èèï¼ä¾å¦å¨ Web API å¼åä¸ï¼éè¦éªè¯è¯·æ±æ¹æ¯å¦æä¾äºå®å ¨ä»¤çï¼å®å ¨ä»¤çæ¯å¦ææãå¦ææ æï¼é£ä¹ API 端åºè¯¥æç»æä¾æå¡ãå¨å½åç©ºé´ Microsoft.AspNetCore.Authentication ä¸ï¼å®ä¹å ³äºéªè¯çæ ¸å¿æ¥å£ã对åºçç¨åºéæ¯ Microsoft.AspNetCore.Authentication.Abstractions.dllã
å¨ ASP.NET ä¸ï¼éªè¯ä¸å å« 3 个åºæ¬æä½ï¼
éªè¯æä½è´è´£åºäºå½å请æ±çä¸ä¸æï¼ä½¿ç¨æ¥èªè¯·æ±ä¸çä¿¡æ¯ï¼ä¾å¦è¯·æ±å¤´ãCookie ççæ¥æé ç¨æ·æ è¯ãæ建çç»ææ¯ä¸ä¸ª AuthenticateResult 对象ï¼å®æ示äºéªè¯æ¯å¦æåï¼å¦ææåçè¯ï¼ç¨æ·æ è¯å°å¯ä»¥å¨éªè¯ç¥¨æ®ä¸æ¾å°ã
常è§çéªè¯å æ¬ï¼
å¨ææ管çé¶æ®µï¼å¦æç¨æ·æ²¡æå¾å°éªè¯ï¼ä½æææ访é®çèµæºè¦æ±å¿ é¡»å¾å°éªè¯çæ¶åï¼æææå¡ä¼ååºè´¨è¯¢ãä¾å¦ï¼å½å¿åç¨æ·è®¿é®åéèµæºçæ¶åï¼æè å½ç¨æ·ç¹å»ç»å½é¾æ¥çæ¶åãæææå¡ä¼éè¿è´¨è¯¢æ¥ç¸åºç¨æ·ã
ä¾å¦
质询æä½åºè¯¥è®©ç¨æ·ç¥éåºè¯¥ä½¿ç¨ä½ç§éªè¯æºå¶æ¥è®¿é®è¯·æ±çèµæºã
å¨ææ管çé¶æ®µï¼å¦æç¨æ·å·²ç»éè¿äºéªè¯ï¼ä½æ¯å¯¹äºå ¶è®¿é®çèµæºå¹¶æ²¡æå¾å°è®¸å¯ï¼æ¤æ¶ä¼ä½¿ç¨æç»æä½ã
ä¾å¦ï¼
æç»è®¿é®å¤çåºè¯¥è®©ç¨æ·ç¥éï¼
å¨è¿ä¸ªåºæ¯ä¸ï¼å¯ä»¥çå°ï¼éªè¯éè¦æä¾çåºæ¬åè½å°±å æ¬äºéªè¯åéªè¯å¤±è´¥åçæç»æå¡ä¸¤ä¸ªæä½ãå¨ ASP.NET Core ä¸ï¼éªè¯è¢«ç§°ä¸º Authenticateï¼æç»è¢«ç§°ä¸º Forbidã å¨ä¾æ¶è´¹è 访é®çç½ç«ä¸ï¼å¦ææ们å¸æå¨éªè¯å¤±è´¥åï¼ä¸æ¯å API ä¸æ ·ç´æ¥è¿åä¸ä¸ªé误页é¢ï¼èæ¯å°ç¨æ·å¯¼èªå°ç»å½é¡µé¢ï¼é£ä¹ï¼å°±è¿éè¦å¢å ä¸ä¸ªæä½ï¼è¿ä¸ªæä½çæ¬è´¨æ¯å¸æç¨æ·å次æä¾å®å ¨åæ®ï¼å¨ ASP.NET Core ä¸ï¼è¿ä¸ªæä½è¢«ç§°ä¸º Challengeãè¿ 3 个æä½ç»åå¨ä¸èµ·ï¼å°±æ¯éªè¯æåºæ¬çè¦æ±ï¼ä»¥æ¥å£å½¢å¼è¡¨ç¤ºï¼å°±æ¯ IAuthenticationHandler æ¥å£ï¼å¦ä¸æ示ï¼
éªè¯çç»ææ¯ä¸ä¸ª AuthenticateResult 对象ãå¼å¾æ³¨æçæ¯ï¼å®è¿æä¾äºä¸ä¸ªéææ¹æ³ NoResult() ç¨æ¥è¿å没æå¾å°ç»æï¼éææ¹æ³ Fail() çæä¸ä¸ªè¡¨ç¤ºéªè¯å¼å¸¸çç»æï¼è Success() æååéè¦æä¾éªè¯ç¥¨æ®ã
éè¿éªè¯ä¹åï¼ä¼è¿åä¸ä¸ªå å«äºè¯·æ±è 票æ®çéªè¯ç»æã
å¨ GitHub ä¸æ¥ç AuthenticateResult æºç
é£ä¹éªè¯çä¿¡æ¯æ¥èªåªéå¢ï¼é¤äºåé¢ä»ç»ç 3 个æä½ä¹å¤ï¼è¿è¦æ±ä¸ä¸ªåå§åçæä½ Initializeï¼éè¿è¿ä¸ªæ¹æ³æ¥æä¾å½å请æ±çä¸ä¸æä¿¡æ¯ã
å¨ GitHub ä¸æ¥ç IAuthenticationHandler å®ä¹
æçæ¶åï¼æ们è¿å¸ææä¾ç»åºæä½ï¼å¢å ç»åºæä½çæ¥å£è¢«ç§°ä¸º IAuthenticationSignOutHandlerã
å¨ GitHub ä¸æ¥ç IAuthenticationSignOutHandler æºç
å¨ç»åºçåºç¡ä¸ï¼å¦æè¿å¸ææä¾ç»å½æä½ï¼é£ä¹å°±æ¯ IAuthenticationSignInHandler æ¥å£ã
å¨ GitHub ä¸æ¥ç IAuthenticationSignInHandler æºç
ç´æ¥å®ç°æ¥å£è¿æ¯æ¯è¾éº»ç¦çï¼å¨å½åç©ºé´ Microsoft.AspNetCore.Authentication ä¸ï¼å¾®è½¯æä¾äºæ½è±¡åºç±» AuthenticationHandler 以æ¹ä¾¿éªè¯æ§å¶å¨çå¼åï¼å ¶å®æ§å¶å¨å¯ä»¥ä»è¯¥æ§å¶å¨æ´¾çï¼ä»¥åå¾å ¶æä¾çæå¡ã
éè¿ç±»çå®ä¹å¯ä»¥çå°ï¼å®ä½¿ç¨äºæ³åãæ¯ä¸ªæ§å¶å¨åºè¯¥æä¸ä¸ªå¯¹åºè¯¥æ§å¶å¨çé ç½®é项ï¼éè¿æ³åæ¥æå®éªè¯å¤çå¨æ使ç¨çé 置类åï¼å¨æé å½æ°ä¸ï¼å¯ä»¥çå°å®è¢«ç¨äºè·å对åºçé ç½®é项对象ã
å¨ GitHub ä¸æ¥ç AuthenticationHandler æºç
éè¿ InitializeAsync()ï¼éªè¯å¤çå¨å¯ä»¥è·å¾å½å请æ±çä¸ä¸æ对象 HttpContextã
æç»ï¼ä½ä¸ºæ½è±¡ç±»ç ï¼å¸ææ´¾çç±»æ¥å®æè¿ä¸ªéªè¯ä»»å¡ï¼æ½è±¡æ¹æ³ HandleAuthenticateAsync() æä¾äºæ©å±ç¹ã
éªè¯çç»ææ¯ä¸ä¸ª AuthenticateResultã
èæç»æå¡åç®åçå¤ï¼ç´æ¥å¨è¿ä¸ªæ½è±¡åºç±»ä¸æä¾äºé»è®¤å®ç°ãç´æ¥è¿å HTTP ã
å©ä¸çä¸ä¸ªä¹ä¸æ ·ï¼æä¾äºé»è®¤å®ç°ãç´æ¥è¿å HTTP ååºã
å¯¹äº JWT æ¥è¯´ï¼å¹¶ä¸æ¶åå°ç»å ¥åç»åºï¼æ以å®éè¦ä»å®ç° IAuthenticationHandler æ¥å£çæ½è±¡åºç±» AuthenticationHandler æ´¾çåºæ¥å³å¯ãä» AuthenticationHandler æ´¾çåºæ¥ç JwtBearerHandler å®ç°åºäºèªå·±çé ç½®é项 JwtBearerOptionsãæ以该类å®ä¹å°±åå¾å¦ä¸æ示ï¼èæé å½æ°æ¾ç¶é åäºæ½è±¡åºç±»çè¦æ±ã
å¨ GitHub ä¸æ¥ç JwtBearerHandler æºç
çæ£çéªè¯åå¨ HandleAuthenticateAsync() ä¸å®ç°ãä¸é¢ç代ç æ¯ä¸æ¯å°±å¾çæäºï¼ä»è¯·æ±å¤´ä¸è·åé带ç JWT 访é®ä»¤çï¼ç¶åéªè¯è¯¥ä»¤ççæææ§ï¼æ ¸å¿ä»£ç å¦ä¸æ示ã
å¨ GitHub ä¸æ¥ç JwtBearerHandler æºç
å¨ ASP.NET Core ä¸ï¼ä½ å¯ä»¥ä½¿ç¨åç§éªè¯å¤çå¨ï¼å¹¶ä¸ä» ä» åªè½ä½¿ç¨ä¸ä¸ªï¼éªè¯æ§å¶å¨éè¦ä¸ä¸ªå称ï¼å®è¢«çä½è¯¥éªè¯æ¨¡å¼ Schema çå称ãJwt éªè¯æ¨¡å¼çé»è®¤åç§°å°±æ¯ "Bearer"ï¼éè¿å符串常é JwtBearerDefaults.AuthenticationScheme å®ä¹ã
å¨ GitHub ä¸æ¥ç JwtBearerDefaults æºç
æç»éè¿ AuthenticationBuilder çæ©å±æ¹æ³ AddJwtBearer() å° Jwt éªè¯æ§å¶å¨æ³¨åå°ä¾èµæ³¨å ¥ç容å¨ä¸ã
å¨ GitHub ä¸æ¥ç JwtBearerExtensions æ©å±æ¹æ³æºç
ä¸ç§éªè¯å¤çå¨ï¼å ä¸å¯¹åºçéªè¯é ç½®é项ï¼æ们å为å®èµ·ä¸ä¸ªååï¼ç»åèµ·æ¥å°±æ为ä¸ç§éªè¯æ¶æ Schemaãå¨ ASP.NET Core ä¸ï¼å¯ä»¥æ³¨åå¤ç§éªè¯æ¶æãä¾å¦ï¼ææçç¥å¯ä»¥ä½¿ç¨æ¶æçå称æ¥æå®æ使ç¨çéªè¯æ¶ææ¥ä½¿ç¨ç¹å®çéªè¯æ¹å¼ãå¨é ç½®éªè¯çæ¶åï¼é常设置é»è®¤çéªè¯æ¶æãå½æ²¡ææå®éªè¯æ¶æçæ¶åï¼å°±ä¼ä½¿ç¨é»è®¤æ¶æè¿è¡å¤çã
è¿å¯ä»¥
注åçéªè¯æ¨¡å¼ï¼æç»åæ AuthenticationSchemeï¼æ³¨åå°ä¾èµæ³¨å ¥æå¡ä¸ã
å¨ GitHub ä¸æ¥ç AuthenticationScheme æºç
åç§éªè¯æ¶æ被ä¿åå°ä¸ä¸ª IAuthenticationSchemeProvider ä¸ã
å¨ GitHub ä¸æ¥ç IAuthenticationSchemeProvider æºç
æç»ç使ç¨æ¯éè¿ IAuthenticationHandlerProvider æ¥å®ç°çï¼éè¿ä¸ä¸ªéªè¯æ¨¡å¼çå符串å称ï¼å¯ä»¥åå¾æ对åºçéªè¯æ§å¶å¨ã
å¨ GitHub ä¸æ¥ç IAuthenticationHandlerProvider æºç
å®çé»è®¤å®ç°æ¯ AuthenticationHandlerProviderï¼æºç 并ä¸å¤æã
å¨ GitHub ä¸æ¥ç AuthenticationHandlerProvider æºç
éªè¯ä¸é´ä»¶çå¤ç就没æé£ä¹å¤æäºã
æ¾å°é»è®¤çéªè¯æ¨¡å¼ï¼ä½¿ç¨é»è®¤éªè¯æ¨¡å¼çå称åå¾å¯¹åºçéªè¯å¤çå¨ï¼å¦æéªè¯æåçè¯ï¼æå½å请æ±ç¨æ·ç主ä½æ¾å°å½å请æ±ä¸ä¸æç User ä¸ã
éé¢è¿æä¸æ®µç¹å«ç代ç ï¼ç¨æ¥æ¾åºåªäºéªè¯å¤çå¨å®ç°äº IAuthenticationHandlerProviderï¼å¹¶ä¾æ¬¡è°ç¨å®ä»¬ï¼ççæ¯å¦éè¦æåç»æ¢è¯·æ±å¤çè¿ç¨ã
å¨ GitHub ä¸æ¥ç AuthenticationMiddle æºç
基于Vue(提供Vue2/Vue3版本)和.Net Core前后端分离、强大、码批跨平台的量修快速开发框架
推荐一款基于Vue(提供Vue2/Vue3版本)和.Net Core的快速开发框架,名为Vue.NetCore。网站e网random shuffle源码此框架开源免费(MIT License),源码支持前后端分离,站源拥有强大功能和跨平台特性。码批内置代码生成器,量修提升开发效率,网站e网解决重复性工作。源码支持移动端(iOS/Android/H5/微信小程序),站源框架内含丰富功能,码批如用户管理、量修角色管理、权限分配、用户权限/菜单静态化处理、JWT认证、审批流程、定时任务、异步队列、基础业务实现、前端组件封装、Redis/Memory缓存、多租户、消息推送等。
.Net 6、EF Core3.1/6.0、ntpdate源码SqlSugar、Dapper、JWT、SignalR、Quartz.Net、Autofac等技术栈用于后端,Vue2/Vue3、Vuex、Axios、Promise、Element UI、Element Plus为前端技术栈,支持SqlServer/MySql/PGSql/Oracle、Redis等数据库。
提供项目源代码,后端代码和前端代码分别位于GitHub仓库中。功能截图展示登录界面、首页表单设计、流程管理、用户管理表单布局、定时任务、代码生成、移动端H5页面、消息推送、日志管理、菜单设置等。
欢迎访问项目开源地址查看更多实用功能和特性,给项目Star支持。verifinger源码该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注可以获取最新动态和最佳实践,提高开发效率和质量。
加入DotNetGuide技术社区微信交流群,与开发者共同探讨和分享技术。
.netcore有哪些不错的开源项目?
以下为推荐的几个.NET Core开源项目: 1. Masuit.Tools这是一个包含了加密解密、反射操作、硬件信息、日期时间扩展等常用封装的开源项目。其开源协议规定,一旦因违反劳动法的公司使用该项目,项目作者有权追讨使用费或不允许使用包含该项目的源代码。项目特色功能包括Socket客户端操作类、模板引擎、任意进制转换、DateTime扩展及反射操作。
2. OrchardCore
OrchardCore 是使用 ASP.NET Core 构建的开源模块化、多租户应用程序框架,同时也是内容管理系统(CMS)的基础。它有两个项目,其中一个是 Fur,适用于.NET 5 平台的入门级、快速开发的 Web 应用框架。强调“六极”设计思想,易于入门、极速开发、极少依赖、极少配置、lrucache源码极其灵活、易于维护。此外,它结合了敏捷开发模式,用户能在冲一杯咖啡的时间内完成工作。Fur框架的特色功能包括支持.NET 5的新功能、六级架构设计和敏捷开发模式等。3. awesome-dotnet-core
这个集合包含了.NET Core开源项目的库、工具、框架、模板引擎、身份认证、数据库、ORM框架、处理、文本处理、机器学习、日志、代码分析、教程等资源。4. ZKEACMS
ZKEACMS 是一个基于ASP .Net Core开发的免费内容管理系统,提供了可视化编辑设计,支持直接在预览页面设计网页,以拼图方式构建网站。它采用跨平台设计,适用于Windows、MAC OS、Linux、cdhhbase源码Docker等环境。5. YiShaAdmin
YiShaAdmin 是一个基于.NET Core Web开发的快速开发平台,提供了代码生成器,能够减少%以上的编码工作量,提高开发效率,节省项目研发成本和开发周期。它使用了Bootstrap、ASP.NET Core、Entity Framework Core等技术。6. .NET Core源码
这是C#开源项目中的推荐,包含.NET Core源代码。7. Util应用框架
Util是一个.NET Core平台下的应用框架,旨在提升小型团队的开发输出能力。它由常用公共操作类、分层架构基类、UI组件、第三方组件封装、第三方业务接口封装、代码生成模板、权限等功能组成。8. OSharp
OSharp 是一个基于.NETStandard2.x的快速开发框架,使用了最新的.NETCore SDK,对 AspNetCore 进行了更高级的封装,并提供了一套规范的业务实现代码结构与操作流程,易于实际项目开发。9. XBlog
这是个人博客系统,提供了技术要点和功能。. FreeSql
FreeSql 是一个强大的对象关系映射技术(O/RM),支持.NETCore 2.1+或.NETFramework 4.0+或Xamarin等平台。. Autofac
经典的依赖注入(DI)框架,适用于Microsoft .NET,管理类之间的依赖关系,使应用程序在大小和复杂性增长时易于更改。. OpenAuth.Core
一个快速应用开发框架和权限管理工作流系统,基于经典领域驱动设计,提供组织机构、角色用户、权限授权、表单设计、工作流等功能。. Abp.VNext.Hello
这是ABP框架的示例项目,具备分层和模块化结构,包含授权、验证、异常处理、日志、数据库连接管理、设置管理、审计日志等特性。以上项目涵盖了从基础工具到高级框架的多个类别,适合不同开发者需求。
.NET core扫盲
.NET发行至今已经过了十四个年头。随着版本的不断迭代更新,.NET在Windows平台上的表现也是越来越好,可以说Windows平台上所有的应用类型.NET几乎都能完成。只是成也Windows,败也Windows,这十四年来,除了部分“民间”版本,.NET一直没能在官方支持下摆脱Windows平台的局限,“开源”和“跨平台”这两个词语也是所有.NET开发者心中的痛楚。最终,.NET Core出现了,它让开发者们在官方和社区的支持走出了Windows,可以在macOS,Linux主流distributions上编写调试并部署.NET程序。
.NET Core是一个开源通用的开发框架,支持跨平台,即支持在Window,macOS,Linux等系统上的开发和部署,并且可以在硬件设备,云服务,和嵌入式/物联网方案中进行使用。.NET Core的源码放在 GitHub上,由微软官方和社区共同支持。它和传统的.NET Framework,属于“子集—超集”的关系,或者你也可以简单地认为它就是.NET Framework的跨平台版本(基于 BCL的层面上看)。这是因为在当前版本中(1.0),.NET Core中的大部分核心代码都是从.NET Framework中继承重写的,包括Runtime和Libraries(如GC, JIT, 部分类型)。
现在的.NET Core 1.0版本是一个很小的核心,APIs和工具也并不完整,但是随着.Net Core的不断完善,补充的Apis和创新也会一起整合到.NET Framework中。也就是说,.NET Core微软会同时更新.NET Framework和.NET Core,他们就像俩兄弟,共同努力致富(致谁的富?当然是.NET开发者们),实现所谓的天下大同,也就是 .NET 标准2.0
这里不得不提到一个叫做 .NET Standard Library概念。作为.NET平台APIs开发官方支持标准,它要求所有的.NET框架APIs都遵循向下兼容。比如说.NET Framwork 4.6支持.NET Standard Library 1.3,.NET Framwork 4.6.2框架支持.NET Standard Library 1.5,而.NET Core 1.0框架支持1.6标准。
Tips:是不是想起了MSCorEE.dll这个垫片,它同样承载着Windows平台上为.NET应用程序选择CLR版本的工作
第二种方式和.NET Native也是不一样的,仍然使用CoreCLR,而.NET Native使用CoreRT作为运行时,详细信息请见 dotnet/corert
.NET Core 1.0版本中支持的编程语言仅有C#(F#和VB暂未实现),这里还要提到一个开源的语言编译器Roslyn,它负责将代码编译成我们熟悉的IL语言,然后再借由AOT或JIT编译器编译成机器熟悉的机器语言。
以下内容演示在Windows和CentOS 7.2下的命令行生成和发布demo
3.1 Win
3.1.1 安装 .NET Core SDK和 .NET Core Runtime .NET Core SDK = 使用.NET Core开发应用.NET Core Runtime 和 SDK+CLI 工具
3.1.2 简单的运行结果 打开cmd,依次输入mkdir .project(创建目录),cd .\.project(进入目录),dotnet new(新建初始项目),dotnet restore(还原依赖),dotnet run(运行)即可运行第一个Hello World程序
3.2 CentOS 7.2(本地Hyper-V)
3.2.1 安装和运行 详情请见: .NET Core in CentOS,大致命令如下
第六行命令后可使用dotnet --info查看是否链接成功,显示如下
以上步骤在.NET Core官方网站都可以找到,可以看到应用在经过简单的dotnet new, dotnet restore, dotnet run命令后就跑起来了,但是这其实是类似于开发环境中的调试运行,而且win上new的应用此时也不能直接跨平台到Linux下运行,所以我们又得提到dotnet publish命令了
3.2.2 Self-contained applications 发布 (1) 修改project.json文件 我们现在win下按照步骤new一个新的HW控制台应用self,按照 官方文档要求,我们需要用以下内容替换原来project.json文件(删除"type": "platform",并增加runtimes节点)
(2) 执行restore和publish操作
之后执行dotnet restore指令,针对平台进行还原操作。该步操作耗时较久,虽然只是两个平台,第一次也花了较长时间。紧接着进行进行dotnet publish -r centos.7-x -c release。
dotnet publish指令详见 dotnet-publish - Packs the application and all of its dependencies into a folder getting it ready for publishing (3) 在Linux平台上运行
上述操作后,我们只需要将发布后的文件夹(bin/release/netcoreapp1.0/centos7-x/publish,包含self.exe)上传到Linux root目录下project(新建)文件夹中, 在Shell中输入指令
修改可执行权限后,即可成功运行“Hello World”,这就是我们“Self-contained applications”方式的部署方法
至此,.NET Core的学习便告一段落了,以上内容简单介绍了.NET Core的组成和特性,同时也在Windows和Linux系统上通过两种不同的部署方式成功运行了示例。相比较之前的.NET Framework傻瓜式部署,.NET Core的新奇真是让我眼前一亮。接下来,我也会将.NET Core和 ASP.NET Core的学习记录下来,欢迎指正。
4.2 相关学习资料
5. 参考资料
c#.netframework和.netcore区别在哪?
理解.NET Framework与.NET Core的差异,首先需明确它们代表的开发环境。Framework是由微软专有,仅在Windows系统上运行的开发框架。相比之下,.NET Core是开源且支持跨平台应用的开发工具。
.NET Core在命名上曾经使用“Core”表示其核心特性,但如今微软已统一名称为.NET,去除后缀,以强调其核心概念。
两者共享的关键特性是实现Common Language Infrastructure(CLI)标准。这意味着,符合CLI标准的C#(及其他兼容语言)源代码在任何实现CLI环境下的执行方式一致。
对于学习C#的开发者而言,从两者之间的区别来看,实际操作差异并不显著。推荐使用最新版Visual Studio(Community版免费),它提供了无缝的开发体验。熟悉.NET命令行工具在日常工作中的使用,能显著提升开发效率。
webrtc使ç¨netcore
WebRTC æ¯ä¸ç§å®ç°æµè§å¨å¯¹çéä¿¡çææ¯ï¼éè¦å¨å端åå端å®ç°ãè .NET Core æ¯ç¨äºå¼å跨平å°åºç¨ç¨åºçæ¡æ¶ãå¦æè¦å° WebRTC åºç¨å° .NET Core ä¸ï¼éè¦è¿è¡ä»¥ä¸å·¥ä½ï¼
1. å¨å端å®ç° WebSocket åè®®ï¼WebRTC éè¦éè¿ WebSocket è¿è¡ä¿¡ä»¤ä¼ è¾ï¼å¯ä»¥ä½¿ç¨ ASP.NET Core SignalR æ¡æ¶æ¥å®ç° WebSocketã
2. å®ç° STUN å TURN æå¡ï¼WebRTC ä¸éè¦ä½¿ç¨ STUN å TURN æå¡æ¥ç©¿é NAT åé²ç«å¢ï¼å¯ä»¥ä½¿ç¨ C# çè¯è¨å¼å STUN æ TURN æå¡å¨ã
3. ä½¿ç¨ WebRTC éä¿¡åè®®ï¼WebRTC åºäº RTP/RTCP åè®®è¿è¡é³è§é¢æµä¼ è¾ï¼å¨ .NET Core ä¸ä¹éè¦å®ç°è¯¥åè®®ã
4. ä½¿ç¨ WebRTC åºï¼ä¸ºäºç®å WebRTC çå¼åï¼å¯ä»¥ä½¿ç¨ç¬¬ä¸æ¹ WebRTC åºï¼ä¾å¦ Google ç libwebrtcãè¿äºåºæä¾äº API æ¥å£å示ä¾ä»£ç ï¼ä¾¿äºå¨å端å®ç° WebRTC åè½ã
éè¦æ³¨æçæ¯ï¼WebRTC å¨å端åå端é½æ¶åå°å¾å¤çææ¯ç»èï¼éè¦ä¸°å¯çç»éªåæè½æè½è¿è¡å¼åãå æ¤ï¼å¦ææ¨æ²¡æç¸å ³çç»éªåæè½ï¼å»ºè®®å¯»æ¾ä¸ä¸çææ¯å¢éæå¨è¯¢æå¡æ¥å¸®å©æ¨å®æ WebRTC å¨ .NET Core ä¸çå¼åã