c# - 客户何时适合与 SignalR 服务重新协商?
问题描述
我试图了解.negotiate
步骤返回的访问令牌SignalR Service
。
[FunctionName("negotiate")]
public static SignalRConnectionInfo Negotiate(
[HttpTrigger(AuthorizationLevel.Anonymous)]HttpRequest req,
[SignalRConnectionInfo(HubName = "chat")]SignalRConnectionInfo connectionInfo)
{
return connectionInfo;
}
- 默认情况下,
SignalRConnectionInfo
valid返回的token多长时间? - 有没有办法手动配置令牌寿命?
- 如果令牌不再有效,
Microsoft.AspNetCore.SignalR.Client.HubConnection
对象(尤其是它的State
属性)会发生什么?会设置为Disconnected
?
基本上,我正在尝试确定何时应该重新协商以保持连接打开。如果令牌过期,客户端如何知道它需要再协商一次才能发送和接收实时消息?
解决方案
深入了解Azure SignalR SDK 代码,默认访问令牌生命周期似乎为 1 小时。
虽然SDK 似乎支持自定义生命周期,但服务绑定似乎并未公开它。
使用 3,不要认为你真的需要它,但你可以在它的 repo 上提出问题或贡献 PR 来支持它。
在
@microsoft/signalr
包中,您可以启用自动重新连接或手动重新连接。我相信图书馆会在内部自行处理协商电话。
推荐阅读
- laravel - Laravel:使用 TextLocal 交易帐户进行身份验证注册后不发送短信
- c# - 如何在 Hololens 应用中调用默认浏览器
- python - seaborn 分布图为每个直方图 bin 的计数添加标签
- javascript - WithStore:无法读取未定义的属性“状态”(纯反应轮播)
- optimization - 如何使用 MathProg (GLPK) 或其 API 实现极小极大组合优化问题
- ruby-on-rails - rails 迁移更改了不相关的列
- c++ - std::move 和 C++ 中的引用传递有什么区别?
- vba - 在 QueryDefs 中找不到 RecordsetType 属性作为有效属性
- html - 如何在 CSS 中设置默认页面尺寸?
- php - 连接到 AWS RDS 数据库的非 AWS 服务器要慢得多