繁体   English   中英

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

[英]Is Blazor WASM Asp.net core Hosted = Blazor server side?

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

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

Blazor 服务器应用程序在服务器上运行,并通过 SignalR 与其客户端(浏览器)通信。 服务器不会为应用程序的每个连接创建应用程序实例。 As the code is executed on the server, and only html diffs are passed to the client in order to update the DOM, the server creates a circuit object for each connecting client, which store the app state, session data, etc. This can be要求非常高,但它仍然可以工作,并且服务器可以同时为数千个客户端提供服务。

WebAssembly Blazor App 托管的工作方式不同。 服务器的作用只是在首次访问应用程序时为其提供服务。 应用程序本身在客户端的浏览器上运行,一切都在客户端上执行。 此处不涉及服务器。 Performing HTTP calls from Blazor client side to Web Api endpoints is equivalent to performing an AJAX call from the client browser to a Web Api when your web app is, say an MVC app or a Razor Pages App. Actually, behind the scenes, WebAssembly app employs the JavaScript Fetch Api to send HTTP calls to Web Api endpoints.

每次您的应用程序的用户与应用程序交互时,服务器都会创建您的应用程序的一个实例,

不是整个应用程序,但是是的,服务器确实在 memory 中保留了当前页面的 model,以及 SignalR 连接。

Asp.net 核心托管层是否也是这种情况

不,这是“正常的” Web API 并且通常尽可能无状态。

为 1000 个用户运行 Blazor 服务器不需要特别的资源,适度的托管可以解决这个问题。 免费托管计划(如 Azure F1)可能会遇到困难。

但 Blazor/Server 并不是数百万用户的最佳平台,它确实需要相当良好的互联网连接。

另请参阅文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM