【问题标题】:Can we create a blazor server application without SignalR? [closed]我们可以在没有 SignalR 的情况下创建 Blazor 服务器应用程序吗? [关闭]
【发布时间】:2020-09-12 07:17:31
【问题描述】:

我目前正在测试 Blazor,我正在尝试理解它。

到目前为止,我创建了一个带有 .net 核心后端和 Web API 的 webassembly blazor,它运行得非常好。 然后我用 SignalR 创建了一个服务器端 blazor。它运作良好,但我想尝试使用 API 而不是 SignalR。 我的想法是我应该将客户端和服务器端分开在两个单独的项目中(可能与 wasm 示例这样的共享项目一起使用)。 我还发现 SignalR 不是 REST API。

我想知道,这有意义吗? VS2019 具有带有 SignalR 和 Blazor 客户端 (wasm) 的 Blazor 服务器模板,可以选择添加托管的 .net 核心 (Web API REST)。如果有意义的话,我想会有一个带有 Web API(没有 SignalR)的 Blazor Server 模板?

最好的问候,

twl

【问题讨论】:

  • FE 如何与 BE 实时对话,反之亦然? SignalR 只是一个 websocket 实现。如果 websockets 不可用,它会回退到其他方法与服务器通信。 SignalR 是服务器端 blazor 中的必备工具。如果您不希望那样,请切换到 wasm blazor。然后,您可以根据需要选择使用 signalR 或直接使用控制器。
  • “有意义吗?”:没有。“分离客户端和服务器端”:使用Webassembly。

标签: c# .net-core blazor blazor-server-side


【解决方案1】:

我不认为你可以,或者这样做甚至有用。官方文档在这里:https://docs.microsoft.com/en-us/aspnet/core/blazor/hosting-models?view=aspnetcore-3.1#blazor-server states

Blazor 服务器应用构建在 ASP.NET Core SignalR 之上。

UI 更新、事件处理和 JavaScript 调用通过 SignalR 连接进行处理。

您将如何使用 api 来实现? api的使用,需要传统的web开发技术。

连接到 Blazor Server 应用的每个浏览器屏幕(浏览器选项卡或 iframe)都使用 SignalR 连接。

但我有一个 API

酷,你可以使用你的 api。没有人禁止您从服务器 blazor 代码进行 api 调用。服务器 blazor 负责更新您的 ui。你可以保持这种状态,当你需要数据时,从服务器 blazor 代码调用 api。

更好的是,为了摆脱额外的跳跃,将新项目创建为 dll 库来处理您的业务逻辑并在服务器 blazor 中使用它们。

【讨论】:

    猜你喜欢
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    相关资源
    最近更新 更多