SignalR connection handling on app pool recycle(应用池回收上的SignalR连接处理)
问题描述
我将SignalR(0.5.3)集线器用于一个聊天应用程序,在该应用程序中,每个击键都被发送到服务器(保存在数据库中),中继到所有客户端,并从服务器返回返回值(某种字符串令牌)。
它工作得很好,直到应用程序池回收,然后它停止向所有客户端转发击键(我想是因为内存中的服务器状态丢失了),服务器也不会返回任何值。此时,我假设所有通过SignalR的请求都由IIS排队,然后在回收应用程序池后进行处理。
我的问题是,如何处理此方案,以便所有客户端都知道应用池回收导致的服务器不可用/延迟,通知用户等待一段时间,然后在重新连接时恢复操作?
推荐答案
有两个选项。
对于0.5.3,您可以检测客户端何时进入"重新连接"或"断开"状态,并通知用户存在服务器问题。请记住,在大多数情况下,如果服务器离开,客户端实际上不会知道它已断开连接。
或
如果您等待下一个版本(1.0alpha),我们将为您解决大部分问题。在缺少服务器时,我们将触发onConnectionSlow事件,这将导致客户端进入"重新连接"状态(如果它没有收到任何信息),直到服务器重新联机。客户端还将知道边缘情况(如应用程序池回收)的服务器是否离开(我们正在添加此功能)。
希望这能有所帮助!
这篇关于应用池回收上的SignalR连接处理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:应用池回收上的SignalR连接处理


基础教程推荐
- 全局 ASAX - 获取服务器名称 2022-01-01
- 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物 2022-01-01
- 错误“此流不支持搜索操作"在 C# 中 2022-01-01
- 经典 Asp 中的 ResolveUrl/Url.Content 等效项 2022-01-01
- 将事件 TextChanged 分配给表单中的所有文本框 2022-01-01
- 从 VS 2017 .NET Core 项目的发布目录中排除文件 2022-01-01
- 如何动态获取文本框中datagridview列的总和 2022-01-01
- JSON.NET 中基于属性的类型解析 2022-01-01
- 首先创建代码,多对多,关联表中的附加字段 2022-01-01
- 是否可以在 asp classic 和 asp.net 之间共享会话状态 2022-01-01