基于时间配额关闭Signalr的连接

问题描述 投票:0回答:1

我需要为信号器连接设置一个计时器,以避免每个客户端超过其时间配额使用,并关闭连接。我该怎么办?我可以使用信号器配置还是必须在主机中设置后台服务?我已经使用json令牌设置了身份验证,因此问题不在此。问题是,我需要一个计时器类,它可以继续运行并按时触发断开连接的方法。我该怎么办?

c# asp.net-core signalr background-process signalr-hub
1个回答
0
投票

您必须跟踪用户达到该配额的时间,这在数据库表中可能是最好的。您可以在Cookie或客户端上执行此操作,但是这样做很冒险,因为可以对其进行修改,或者它们可以从多个客户端(例如电话和PC)连接。

[当用户尝试连接时,您应根据其配额检查当前时间,以及是否还有剩余时间。

您可以在客户端中使用一种方法来调用以通知他们时间已到,并使客户端断开连接。

[您可以在服务器端执行的操作始终是将用户分组,当客户端处于配额状态时,将其从组中删除,他们通常会进入该组以接收数据并将其推送到一个称为“超时”的组中。这个群组永远不会收到任何内容。您可以在OnConnect()方法中执行此操作。

© www.soinside.com 2019 - 2024. All rights reserved.