首页 > 解决方案 > ASP.NET Core SignalR 中的客户端生命周期事件

问题描述

我目前正在将一个项目从ASP.NET SignalR 2.2.3 (OWIN) 升级到ASP.NET Core SignalR 1.0.2 (Kestrel)。

SignalR 2.2.3 支持多个客户端生命周期事件,如reconnecting, connectionSlow, stateChanged, ... 。我们的 javascript 客户端使用了这些事件并显示了诸如“重新连接”或“连接当前很慢”之类的内容。

ASP.NET Core SignalR 中是否存在或将存在等价物?到目前为止,我只发现了两个生命事件:

let c = new signalR.HubConnectionBuilder().("/signalR");
c.connection.onClose(function(error) {});
c.connection.onReceive(function(data) {});

我也看到了这个问题,但用户只要求onClose事件。

不,我不是在寻找服务器端的生命周期事件

更新 - 重新连接事件

好的,因为根据文档和这个Github 问题没有重新连接(还没有?),我对丢失ReconnectingReconnected. 但是和connectionSlow呢?startingstateChanged

标签: javascriptasp.net-coresignalrsignalr.clientasp.net-core-signalr

解决方案


看起来目前HubConnection只有两种状态:

  • 断开连接
  • 连接的

这些状态通过state连接中的属性公开,但没有其他任何状态。

但是,有一个ILogger实例在整个标准操作中被广泛使用。ILogger可以通过该方法向HubConnectionBuilder提供自定义。configureLogging您可以使用自定义记录器来捕获所有单个事件并做出相应反应。


推荐阅读