我是 Blazor 新手,我正在尝试使用 .NET Core 3.0 的服务器端模型。
我正在尝试设置一个简单的多用户矢量绘图应用程序,该应用程序允许多个用户在同一 Canvas 上创建形状。
形状、参数等都存储在数据库中,并且有很多 Canvas 。
我的问题是,假设两个(或更多)用户正在查看同一 Canvas ,当其他用户创建新形状时如何保持状态最新?如何检测哪些其他用户正在查看或编辑同一 Canvas ?
TIA。
现在已经快到 2024 年了,这有什么不同?
最佳答案
您可以通过将 NavigationManager 包装在单例服务中来跟踪所有用户的位置。
对于形状,您可以使用类似的想法 - 让操作形状的服务通知 Singleton 服务,然后该服务可以向该页面的所有订阅者引发事件(这些订阅者是由您的 NavigationManager 包装器确定的用户)。
关于signalr - 多个用户在服务器端 Blazor 中访问相同的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59308833/