signalr - 多个用户在服务器端 Blazor 中访问相同的状态

标签 signalr asp.net-core-signalr blazor-server-side

我是 Blazor 新手,我正在尝试使用 .NET Core 3.0 的服务器端模型。

我正在尝试设置一个简单的多用户矢量绘图应用程序,该应用程序允许多个用户在同一 Canvas 上创建形状。

形状、参数等都存储在数据库中,并且有很多 Canvas 。

我的问题是,假设两个(或更多)用户正在查看同一 Canvas ,当其他用户创建新形状时如何保持状态最新?如何检测哪些其他用户正在查看或编辑同一 Canvas ?

TIA。

现在已经快到 2024 年了,这有什么不同?

最佳答案

您可以通过将 NavigationManager 包装在单例服务中来跟踪所有用户的位置。

对于形状,您可以使用类似的想法 - 让操作形状的服务通知 Singleton 服务,然后该服务可以向该页面的所有订阅者引发事件(这些订阅者是由您的 NavigationManager 包装器确定的用户)。

关于signalr - 多个用户在服务器端 Blazor 中访问相同的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59308833/

相关文章:

c# - 在 ASP.Net/SignalR 环境中使用 System.Threading.Timer 的风险

javascript - 带有 SignalR 和简单 js 客户端的 Abp 通知

iis - 我可以使用服务器端 blazor 进行生产吗?

c# - 使用 navlink 时不会触发 Blazor ASP.Net Core(服务器端)中的自定义 URL 重写规则

signalr - 可以使用 SignalR 流式传输视频吗?

c# - 从 SignalR3 rc1 vnext 应用程序中调用方法时没有任何反应

c# - SignalR 无法在网站中工作,但可以在 Web 应用程序中工作

c# - 如何使用带有 .NET Core 的 SignalR 从集线器类使用服务器端计时器?

authentication - 如何在 AspNetCore SignalR Alpha 中启用 Windows 身份验证

css - 设计师是如何应用这个css类的呢?