我创建了一个 Blazor Web 应用,它显示一个类似日历的页面,上面有各种“事件”。您可以在日期之间拖放这些事件。
当多个用户查看相似日期时,您如何建议他们能够看到其他用户所做的更改?
日历的数据是从 .NET API 检索的,然后存储在内存中以供每次使用。当用户拖放时,事件会在其 UI 和数据库中更新。
我没有太多的 Blazor 经验,但我觉得这应该是可能的?
我创建了一个 Blazor Web 应用,它显示一个类似日历的页面,上面有各种“事件”。您可以在日期之间拖放这些事件。
当多个用户查看相似日期时,您如何建议他们能够看到其他用户所做的更改?
日历的数据是从 .NET API 检索的,然后存储在内存中以供每次使用。当用户拖放时,事件会在其 UI 和数据库中更新。
我没有太多的 Blazor 经验,但我觉得这应该是可能的?
一旦给定用户对事件的更新传播到数据库,并且您想要实时更新每个查阅日历的人的 UI,您可以使用SignalR来实现这一点。(它是一个允许服务器端代码向客户端 Web 应用程序发送异步通知的库。)
在您的 ASP.NET API 中,注册并配置 SignalR 并创建一个 Hub 来处理此实时通信,例如:
在您
Program.cs
或您的自定义静态扩展类中:当事件被拖放时,它应该触发 API 的更新,因此我们需要处理它并通知所有客户端,例如在您的控制器中:
现在在您的 Blazor 组件中,您需要连接到 SignalR Hub 以便处理更新,例如:
我试图使其尽可能简单,只是为了开始了解如何解决这种情况,您可以查看Microsoft 的 SignalR 文档,因为它几乎考虑到了某人可能正在使用的渲染模式和其他配置。