【发布时间】:2020-08-04 19:07:53
【问题描述】:
我正在使用 SignarR 作为销售主管仪表板。仪表板向主管显示哪个销售人员正在通话,并允许他对此进行处理。这将由大约 100 名销售人员和 10 名不同的主管组成。
后端是AspnetCore 3.1,前端是通常的html/javascript。
总的来说,SignalR 运行良好。简而言之,CSR 采取的不同操作(例如开始呼叫)被触发到集线器,然后广播给相关的主管。所有这些工作都很好 - 大部分时间。
问题是有时会丢失事件。例如,服务器永远不会收到开始通话的事件,因此看起来销售员没有在通话,而实际上他们正在通话。
或者有时 Call End 事件不会触发,然后看起来他们正在通话,而实际上他们不在通话中。这种情况只发生在 2-3% 的时间内,但足以引起问题。
因此,我正在寻找方法来提高事件的准确性,以使其达到 100%。我有两个想法:
-
服务器收到事件后,将“确认”发送回客户端。然后,在客户端,如果它没有收到确认,则再次触发事件。
-
向服务器发送“流”事件。因此,例如,如果用户拨打电话,则将该事件发送到服务器。然后继续向服务器发送相同的事件,直到电话结束。然后重复发送 HungUp 事件,直到某个新事件发生。
或者 SignalR 是否应该能够 100% 获得事件?
任何建议将不胜感激。我已经搜索过,我只能找到关于我现在添加的“withAutomaticReconnect”功能。
【问题讨论】:
-
你在使用 Azure SignalR 吗?并且你使用像 redis 这样的缓存吗?
-
@Kiril1512,我没有使用 Azure SignalR 服务,也没有使用缓存。我熟悉 Azure SignalR,但不使用缓存。
标签: signalr asp.net-core-signalr