SignalR connection handling on app pool recycle(应用池回收上的SignalR连接处理)
问题描述
我将SignalR(0.5.3)集线器用于一个聊天应用程序,在该应用程序中,每个击键都被发送到服务器(保存在数据库中),中继到所有客户端,并从服务器返回返回值(某种字符串令牌)。
它工作得很好,直到应用程序池回收,然后它停止向所有客户端转发击键(我想是因为内存中的服务器状态丢失了),服务器也不会返回任何值。此时,我假设所有通过SignalR的请求都由IIS排队,然后在回收应用程序池后进行处理。
我的问题是,如何处理此方案,以便所有客户端都知道应用池回收导致的服务器不可用/延迟,通知用户等待一段时间,然后在重新连接时恢复操作?
推荐答案
有两个选项。
对于0.5.3,您可以检测客户端何时进入"重新连接"或"断开"状态,并通知用户存在服务器问题。请记住,在大多数情况下,如果服务器离开,客户端实际上不会知道它已断开连接。
或
如果您等待下一个版本(1.0alpha),我们将为您解决大部分问题。在缺少服务器时,我们将触发onConnectionSlow事件,这将导致客户端进入"重新连接"状态(如果它没有收到任何信息),直到服务器重新联机。客户端还将知道边缘情况(如应用程序池回收)的服务器是否离开(我们正在添加此功能)。
希望这能有所帮助!
这篇关于应用池回收上的SignalR连接处理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:应用池回收上的SignalR连接处理
基础教程推荐
- SSE 浮点算术是否可重现? 2022-01-01
- 有没有办法忽略 2GB 文件上传的 maxRequestLength 限制? 2022-01-01
- 如何在 IDE 中获取 Xamarin Studio C# 输出? 2022-01-01
- c# Math.Sqrt 实现 2022-01-01
- 将 Office 安装到 Windows 容器 (servercore:ltsc2019) 失败,错误代码为 17002 2022-01-01
- MS Visual Studio .NET 的替代品 2022-01-01
- 如何激活MC67中的红灯 2022-01-01
- rabbitmq 的 REST API 2022-01-01
- 将 XML 转换为通用列表 2022-01-01
- 为什么Flurl.Http DownloadFileAsync/Http客户端GetAsync需要 2022-09-30