Blazor WASM Asp.net核心是否托管= Blazor服务器端?

时间:2020-06-10 23:12:03

标签: c# asp.net blazor blazor-server-side blazor-webassembly

我在其他地方读到,在创建Blazor服务器端应用程序时,每次您的应用程序用户与该应用程序进行交互时,服务器都会创建您的应用程序实例,这意味着,如果您同时有1000个用户在使用该应用程序,托管服务器必须同时管理您的应用程序的1000个实例。

因此,如果这是真的,那么Blazor WASM Asp.net Core托管应用程序的Asp.net核心托管层也是如此吗?意思是,如果您有1000个用户同时向WebAPI发送请求,那么是否会创建1000个实例来处理请求?

1 个答案:

答案 0 :(得分:4)

Blazor Server App在服务器上运行,并通过SignalR与客户端(浏览器)通信。服务器不会为与应用程序的每个连接创建应用程序的实例。由于代码是在服务器上执行的,并且只有html diff传递给客户端以更新DOM,因此服务器为每个连接的客户端创建一个电路对象,用于存储应用程序状态,会话数据等。要求很高,但仍然可以使用,服务器可以同时为数千个客户提供服务。

WebAssembly Blazor App托管的作品有所不同。服务器的角色仅是在首次访问应用程序时为其提供服务。该应用程序本身在客户端的浏览器上运行,并且所有操作均在客户端上执行。此处不涉及服务器。当您的Web应用程序是MVC应用程序或Razor Pages应用程序时,从Blazor客户端到Web Api端点执行HTTP调用等效于从客户端浏览器向Web Api执行AJAX调用。实际上,在幕后,WebAssembly应用程序使用JavaScript Fetch Api将HTTP调用发送到Web Api端点。

希望这对您有帮助...