如果您查看 StackOverflow (SO) 站点,当您查看特定线程并且该线程有一些更新时,SO 会将通知推送给您。这意味着 SO 知道用户上下文/用户操作(您当前正在查看哪个线程)。我正在尝试使用 SignalR 在我的 ASP.NET Web API 应用程序中构建类似的东西。
为了实现这种类似的行为,我正在执行以下步骤。
- 每次用户查看线程时,我都会对端点进行 get 调用以返回线程信息,我正在维护一个字典,每次都会更新该字典,调用此端点。在这本字典中,我将
context.connectionId
as 键和threadId
值存储(保留threadId
为值,因为多个用户可以同时查看同一个线程)。 - 每当对任何线程进行更改时,我都会要求字典向我返回 value == threadId 的所有 connectionId(键)。
- 然后我将通知推送到步骤 2 中返回的所有 coonectionId。
问题:
- 我觉得这太过分了,可能有一种更简单的方法来完成这一切。处理这种情况的最佳方法是什么?
- 您是否认为这种方法可以很好地扩展并且不会影响应用程序性能。
- 明天如果我搬到服务器场,这种方法仍然有效吗?