Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Signalr 如何确保事件不发生';使用信号器时不要迷路_Signalr_Asp.net Core Signalr - Fatal编程技术网

Signalr 如何确保事件不发生';使用信号器时不要迷路

Signalr 如何确保事件不发生';使用信号器时不要迷路,signalr,asp.net-core-signalr,Signalr,Asp.net Core Signalr,我使用SignarR作为销售主管仪表板。仪表板向主管显示哪个销售人员正在接听电话,并允许他提供与此相关的功能。这将由大约100名销售人员和10名不同的主管组成的小组使用 后端是AspnetCore 3.1,前端是常见的html/javascript 总的来说,信号器工作正常。简言之,CSR采取的不同操作(如启动呼叫)将被激发到集线器,然后广播到相关主管。所有这些工作都很好-大部分时间 问题是,有时事件会丢失。例如,服务器从未收到启动电话的事件,因此它使销售人员似乎没有接听电话,而实际上他们正在接

我使用SignarR作为销售主管仪表板。仪表板向主管显示哪个销售人员正在接听电话,并允许他提供与此相关的功能。这将由大约100名销售人员和10名不同的主管组成的小组使用

后端是AspnetCore 3.1,前端是常见的html/javascript

总的来说,信号器工作正常。简言之,CSR采取的不同操作(如启动呼叫)将被激发到集线器,然后广播到相关主管。所有这些工作都很好-大部分时间

问题是,有时事件会丢失。例如,服务器从未收到启动电话的事件,因此它使销售人员似乎没有接听电话,而实际上他们正在接听电话

或者,有时呼叫结束事件不会触发,然后它们似乎正在通话,而实际上没有。这种情况只发生在2-3%的时间内,但足以引起问题

因此,我正在寻找提高比赛准确性的方法,使其达到100%。我有两个想法:

  • 服务器收到事件后,向客户端发送“确认”。然后,在客户端上,如果没有收到ack,则再次触发事件

  • 向服务器触发事件“流”。例如,如果用户开始打电话,将该事件发送到服务器。然后继续向服务器发送相同的事件,直到电话通话结束。然后重复发送HungUp事件,直到出现新事件

  • 或者信号员应该能够以100%的速度获得事件


    如有任何建议,将不胜感激。我已经搜索过了,我所能找到的只是我现在添加的“withAutomaticReconnect”功能。

    我还没有得到任何回应,所以我将注意到我所做的事情,到目前为止似乎还有效

  • 连接时设置“withAutoReconnect()”

  • 实现了往返确认。因此,在服务器接收到和事件后,它将应答推回到发送客户端。如果客户端在两秒钟内没有收到此消息,则会重新发布该事件


  • 到目前为止,一切顺利。我将在烘焙一段时间后更新它。

    您使用的是Azure Signal吗?你会像redis一样使用缓存吗?@Kiril1512,我不会使用Azure信号服务,我也不会使用缓存。我熟悉Azure Signal,但不使用缓存。