【问题标题】:Architectural advice: How to synchronize SignalR messages with the backend?架构建议:如何将 SignalR 消息与后端同步?
【发布时间】:2025-12-10 13:10:01
【问题描述】:

首先我想描述一下场景:

  • 假设我有一个管理页面,其中显示了多个不同的内容。

  • 显示的内容由客户端设备发送(管理员 客户端之间的 SignalR)。

  • 客户端可以看到其他客户端发送的内容。

  • 他们会喜欢这些东西。

  • 点赞会影响管理端的项目顺序。


通过 SignalR 发送的所有内容都必须保存在数据库中(可以异步完成),原因很简单,当有人刷新站点(初始页面加载)时。

管理端

起初我想以 5 秒的间隔进行自己的轮询(ASP.NET Web API)。 但这不是实时的,也不是我所说的良好性能(每次都会查询数据库)。 现在我的问题是确保通过 SignalR 从客户端接收到的项目与数据库同步。 而且顺序必须匹配。所以我必须在 JavaScript 中复制一些关于点赞/投票的业务逻辑等等。

这似乎容易出错。

您对此有何看法?

【问题讨论】:

    标签: asp.net-mvc architecture asp.net-web-api signalr


    【解决方案1】:

    当您想要捕获后端触发的事件并将它们转发给客户端时,我制作了一个非常适合的库。请在此处查看我的答案

    How to use a Singleton Signalr client within an MVC application

    Refreshing List of news using SignalR

    【讨论】: