如何让 SignalR 连接尊重会话超时

     2023-02-24     66

关键词:

【中文标题】如何让 SignalR 连接尊重会话超时【英文标题】:How to get SignalR Connection to Respect Session Timeout 【发布时间】:2016-06-13 15:20:59 【问题描述】:

使用 SignalR,它旨在保持与 Web 服务器的长时间运行连接。但是,我有一个场景,在 ASP.Net 会话过期很久之后,SignalR 连接仍保持与 Web 服务器的开放连接。即使客户端和服务器都没有发送数据,也会发生这种情况。

如何进行设置,以便在 Asp.net 会话到期后,SignalR 连接终止,从而释放服务器上的连接?

这是理想的,因为 Web 服务器在负载均衡器上运行,并且当将服务器从轮换中取出时,我们需要当前连接数来通常表示活动会话的数量 - 而不是仍在踢的 SignalR 连接因为用户打开了浏览器。

【问题讨论】:

我曾想过利用集线器授权机制来确保会话处于活动状态,但这有点笨拙——尤其是因为这根本不需要身份验证。我的另一个想法是让客户端自己通过监视会话状态或通过在会话结束时重定向来终止连接,但同样 - 这感觉更像是一种解决方法,而不是适当的解决方案。 【参考方案1】:

SignalR 服务器不允许断开特定的客户端连接(这将非常有用)。所以客户有责任这样做。

一种解决方法是在客户端上添加一个事件侦听器并从那里断开连接,即:

hubProxy.On<string>("YouAreUselesLetMeAlone", _ => connection.Dispose());

显然,要完成这项工作,您需要一个 asp.net 会话 信号器连接的关系(ConcurrentDictionary?),因此您可以在 asp.net 会话结束时在正确的客户端中调用此方法。

【讨论】:

.Net Core SignalR - 连接超时 - 心跳定时器 - 连接状态更改处理

】.NetCoreSignalR-连接超时-心跳定时器-连接状态更改处理【英文标题】:.NetCoreSignalR-connectiontimeout-heartbeattimer-connectionstatechangehandling【发布时间】:2017-11-0918:12:47【问题描述】:首先要明确一点,这个问题是关于.NetCoreSignalR,而不... 查看详情

如何在会话超时或结束时注销用户

】如何在会话超时或结束时注销用户【英文标题】:Howtologoutauserwhenasessiontimesoutorends【发布时间】:2011-05-2318:27:06【问题描述】:当会话结束或到期时注销用户的最佳方式是什么?感谢您的帮助。【问题讨论】:您的意思是让用... 查看详情

PHP 会话超时

...像这样登录时,我正在创建一个会话:$_SESSION[\'id\']=$id;如何在X分钟的会话上指定超时,然后让它在达到X分钟后执行功能或页面重定向??编辑:我忘了提到由于不活动而需要会话超时。【问题讨论】:HowdoIexpireaPHPsessionafter30min... 查看详情

如何在 Ruby 中设置 FTP 会话空闲超时?

】如何在Ruby中设置FTP会话空闲超时?【英文标题】:HowtosetFTPsessionidlenesstimeoutinRuby?【发布时间】:2012-01-1102:44:57【问题描述】:我有一个Ruby线程,它首先连接到FTP服务器,然后上传数千个文件。由于一些连接问题,Ruby线程经... 查看详情

如何让 Appium 会话长时间保持活动状态

】如何让Appium会话长时间保持活动状态【英文标题】:HowtokeepaliveAppiumsessionforlongtime【发布时间】:2019-06-1521:48:45【问题描述】:我需要在测试过程中等待5分钟,但Appium会话默认为newCommandTimeoutof60s.,并且在下一个命令中我的会... 查看详情

SignalR:检测客户端上的连接状态

】SignalR:检测客户端上的连接状态【英文标题】:SignalR:detectconnectionstateonclient【发布时间】:2012-03-0905:48:02【问题描述】:我已经了解了如何通过绑定到.disconnect事件来使用SignalR在客户端捕获断开连接事件。现在我已经完成了... 查看详情

MongoClient 不尊重 connectTimeout

...描述】:我正在尝试为MongoClient(驱动程序版本2.13)设置连接超时。它挂起10秒然后超时。我需要快速超时,因为此代码用于测试。这是我的代码:StringconnectionUri=properties.getProperty 查看详情

如何终止 SignalR 连接?

】如何终止SignalR连接?【英文标题】:HowcanIkillaSignalRconnection?【发布时间】:2020-07-0403:33:22【问题描述】:我正在使用SignalR在网站上传输数据。但是SignalR应该只能在一段时间内发送数据,如果该时间段已过,则应终止连接。如... 查看详情

有没有一种简单的方法可以让烧瓶中的会话超时?

】有没有一种简单的方法可以让烧瓶中的会话超时?【英文标题】:Isthereaneasywaytomakesessionstimeoutinflask?【发布时间】:2012-07-3118:03:55【问题描述】:我正在使用烧瓶建立一个网站,用户拥有帐户并能够登录。我正在使用烧瓶主体... 查看详情

如何从angularJs连接signalR

】如何从angularJs连接signalR【英文标题】:HowtoconnectsignalRfromangularJs【发布时间】:2017-02-0100:50:02【问题描述】:我在.NET中将Web应用程序开发为两个独立的应用程序,后端使用webapic#,用户界面使用AngularJS。我只想在这个项目中添... 查看详情

如何在 ktor 中设置会话超时?

】如何在ktor中设置会话超时?【英文标题】:Howtosetsessiontimeoutinktor?【发布时间】:2020-01-0314:40:03【问题描述】:如何设置超时,如果没有用户活动,会话过期?我正在寻找类似码头的东西:ServletContextHandlerwebappContext=newServletCon... 查看详情

如何让 AVCaptureSession 和 AVPlayer 尊重 AVAudioSessionCategoryAmbient?

】如何让AVCaptureSession和AVPlayer尊重AVAudioSessionCategoryAmbient?【英文标题】:HowdoImakeAVCaptureSessionandAVPlayerrespectAVAudioSessionCategoryAmbient?【发布时间】:2015-11-1901:51:53【问题描述】:我正在制作一个可以录制(AVCaptureSession)和播放(AVPlaye... 查看详情

如何让 BeautifulSoup 4 尊重自闭标签?

】如何让BeautifulSoup4尊重自闭标签?【英文标题】:HowtogetBeautifulSoup4torespectaself-closingtag?【发布时间】:2013-02-0408:54:03【问题描述】:这道题是针对BeautifulSoup4的,这使得它与之前的问题有所不同:WhyisBeautifulSoupmodifyingmyself-closing... 查看详情

如何设置弹簧安全会话超时?

】如何设置弹簧安全会话超时?【英文标题】:Howtosetspringsecuritysessiontimeout?【发布时间】:2020-03-2902:31:30【问题描述】:我在tomcat服务器中使用springsecurity。如何更改默认会话超时?我尝试使用以下命令修改web.xml:<session-confi... 查看详情

如何让 Vim 尊重 .editorconfig?

】如何让Vim尊重.editorconfig?【英文标题】:HowdoImakeVimrespect.editorconfig?【发布时间】:2015-09-2612:40:28【问题描述】:我使用Vundle安装editorconfig-vim插件。它正确加载并列在:scriptnames中。但是当我创建一个新文件时,比如x.js,缩进... 查看详情

如何在过期前延长asp.net中的会话超时

】如何在过期前延长asp.net中的会话超时【英文标题】:howtoextendthesessiontimeoutinasp.netbeforeexpiry【发布时间】:2014-02-1200:26:42【问题描述】:我正在开发电影票预订网站。我正在使用会话,因为我想延长会话超时现在使用20分钟作... 查看详情

SignalR jquery 会话存储

】SignalRjquery会话存储【英文标题】:SignalRjquerysessionstorage【发布时间】:2017-10-3022:04:12【问题描述】:我在https://docs.microsoft.com/en-us/aspnet/signalr/overview/getting-started/tutorial-getting-started-with-signalr的帮助下建立了一个实时聊天现在我... 查看详情

如何在opencart中延长会话超时[重复]

】如何在opencart中延长会话超时[重复]【英文标题】:Howtoextendsessiontimeoutinopencart[duplicate]【发布时间】:2020-05-2508:30:52【问题描述】:我正在使用opencart开发一个网站,我想将会话超时时间延长到1小时。如何在opencart3中延长会话... 查看详情