Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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
Asp.net 聊天应用程序的定时器功能_Asp.net_Timer_Chat - Fatal编程技术网

Asp.net 聊天应用程序的定时器功能

Asp.net 聊天应用程序的定时器功能,asp.net,timer,chat,Asp.net,Timer,Chat,实际上,我正在构建一个聊天应用程序,它必须显示当前用户,我在db中有一列“IsOnline”,当用户登录或注销时,它的值在1和0之间切换。我需要一个功能,点击api每15秒,以获得最新的用户谁是目前在线。 因为我使用的实体框架不支持信号器和sql依赖,所以我决定这样做。 我怎样才能有一个在单独线程中每15秒运行一次的方法,以便在会话中有用户时不干扰其他crud操作 15秒后轮询不是一个好的解决方案,尤其是当您的呼叫在DB上时。考虑一下这种方法的延迟。我认为您需要寻找不同的方法,而不是在15秒后调

实际上,我正在构建一个聊天应用程序,它必须显示当前用户,我在db中有一列“IsOnline”,当用户登录或注销时,它的值在1和0之间切换。我需要一个功能,点击api每15秒,以获得最新的用户谁是目前在线。 因为我使用的实体框架不支持信号器和sql依赖,所以我决定这样做。
我怎样才能有一个在单独线程中每15秒运行一次的方法,以便在会话中有用户时不干扰其他crud操作

15秒后轮询不是一个好的解决方案,尤其是当您的呼叫在DB上时。考虑一下这种方法的延迟。我认为您需要寻找不同的方法,而不是在15秒后调用db


如果要在线/离线检查,请将状态保留在内存中,而不是保留在数据库中(如果要保留在数据库中,请在1小时后或2小时后保留)。

15秒后轮询不是一个好的解决方案,尤其是当您的呼叫在数据库中时。考虑一下这种方法的延迟。我认为您需要寻找不同的方法,而不是在15秒后调用db


如果要在线/离线检查,请在内存中保持状态,而不是在数据库中持久化(如果要在数据库中保持状态,请在1小时或2小时后持久化)。

将状态存储在内存中,例如在memcached或redis中。让客户机每15秒发出一次请求。在线状态是暂时的,不需要存储在数据库中

很难给出深入的建议,因为您没有描述应用程序的体系结构


一般来说,有效实现状态通知是一件棘手的事情。从书架上取下一些东西可能比开发自己的东西更容易。

将状态存储在内存中,例如在memcached或redis中。让客户机每15秒发出一次请求。在线状态是暂时的,不需要存储在数据库中

很难给出深入的建议,因为您没有描述应用程序的体系结构


一般来说,有效实现状态通知是一件棘手的事情。从架子上取下东西可能比开发自己的东西更容易。

不同的方法?如果你能给我指个方向会有帮助的。不同的方法?如果你能给我指个方向,我会很有帮助的。