ASP.NET Core SignalR 中的客户端生命周期事件
Posted
技术标签:
【中文标题】ASP.NET Core SignalR 中的客户端生命周期事件【英文标题】:Client Lifecycle events in ASP.NET Core SignalR 【发布时间】:2018-12-20 16:41:45 【问题描述】:我目前正在将一个项目从 ASP.NET SignalR 2.2.3 (OWIN) 升级到 ASP.NET Core SignalR 1.0.2 (Kestrel)。
SignalR 2.2.3 支持多个客户端 lifetime events,例如 reconnecting
、connectionSlow
、stateChanged
、...。
我们的 javascript 客户端使用了这些事件并显示了诸如“重新连接”或“连接当前很慢”之类的内容。
在 ASP.NET Core SignalR 中是否存在或将存在等价物?到目前为止,我只发现了两个生命事件:
let c = new signalR.HubConnectionBuilder().("/signalR");
c.connection.onClose(function(error) );
c.connection.onReceive(function(data) );
我也看到了this question,但用户只要求onClose
事件。
不,我不是在寻找服务器端的lifetime events。
更新 - 重新连接事件
好的,因为根据docs 和这个Github issue 没有重新连接(还没有?),我可以接受缺少的Reconnecting
和Reconnected
。但是connectionSlow
、starting
和stateChanged
呢?
【问题讨论】:
【参考方案1】:目前HubConnection 似乎只有 2 个状态:
断开连接 已连接这些状态通过连接中的 state
属性公开,但没有其他任何状态。
但是,有一个ILogger
实例在整个标准操作中被广泛使用。可以通过configureLogging
方法将自定义ILogger
提供给HubConnectionBuilder。您可以使用自定义记录器来捕获所有单个事件并做出相应的反应。
【讨论】:
以上是关于ASP.NET Core SignalR 中的客户端生命周期事件的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core SignalR :SignalR Javascript 客户端
ASP.NET Core SignalR 下:SignalR Javascript 客户端