应用池回收上的SignalR连接处理

SignalR connection handling on app pool recycle(应用池回收上的SignalR连接处理)

本文介绍了应用池回收上的SignalR连接处理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将SignalR(0.5.3)集线器用于一个聊天应用程序,在该应用程序中,每个击键都被发送到服务器(保存在数据库中),中继到所有客户端,并从服务器返回返回值(某种字符串令牌)。

它工作得很好,直到应用程序池回收,然后它停止向所有客户端转发击键(我想是因为内存中的服务器状态丢失了),服务器也不会返回任何值。此时,我假设所有通过SignalR的请求都由IIS排队,然后在回收应用程序池后进行处理。

我的问题是,如何处理此方案,以便所有客户端都知道应用池回收导致的服务器不可用/延迟,通知用户等待一段时间,然后在重新连接时恢复操作?

推荐答案

有两个选项。

对于0.5.3,您可以检测客户端何时进入"重新连接"或"断开"状态,并通知用户存在服务器问题。请记住,在大多数情况下,如果服务器离开,客户端实际上不会知道它已断开连接。

如果您等待下一个版本(1.0alpha),我们将为您解决大部分问题。在缺少服务器时,我们将触发onConnectionSlow事件,这将导致客户端进入"重新连接"状态(如果它没有收到任何信息),直到服务器重新联机。客户端还将知道边缘情况(如应用程序池回收)的服务器是否离开(我们正在添加此功能)。

希望这能有所帮助!

这篇关于应用池回收上的SignalR连接处理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:应用池回收上的SignalR连接处理

基础教程推荐