Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 客户何时适合与信号服务重新协商?_C#_Websocket_Signalr_Azure Functions_Signalr.client - Fatal编程技术网

C# 客户何时适合与信号服务重新协商?

C# 客户何时适合与信号服务重新协商?,c#,websocket,signalr,azure-functions,signalr.client,C#,Websocket,Signalr,Azure Functions,Signalr.client,我正在试图理解信号机服务的协商步骤返回的访问令牌 [FunctionName("negotiate")] public static SignalRConnectionInfo Negotiate( [HttpTrigger(AuthorizationLevel.Anonymous)]HttpRequest req, [SignalRConnectionInfo(HubName = "chat")]SignalRConnectionInfo connectionInfo) {

我正在试图理解
信号机服务
协商
步骤返回的访问令牌

[FunctionName("negotiate")]
public static SignalRConnectionInfo Negotiate(
    [HttpTrigger(AuthorizationLevel.Anonymous)]HttpRequest req,
    [SignalRConnectionInfo(HubName = "chat")]SignalRConnectionInfo connectionInfo)
{
    return connectionInfo;
}
  • 默认情况下,
    SignalRConnectionInfo
    返回的令牌有效多长时间
  • 有没有办法手动配置令牌寿命
  • 如果令牌不再有效,Microsoft.AspNetCore.signar.Client.HubConnection对象(尤其是其
    状态
    属性)会发生什么变化?是否将其设置为断开连接
基本上,我正在努力确定什么时候应该重新协商以保持连接畅通。在令牌过期的情况下,客户端如何知道它需要再协商一次才能发送和接收实时消息

  • 深入到,默认的访问令牌生存期似乎是1小时

  • 而服务

    对于3,不要认为你真的需要它,但你可以或贡献一个公关来支持它

  • @microsoft/signal
    软件包中,您可以选择或。我相信图书馆会自行处理内部的协商电话


  • 在Microsoft文档的“身份验证和授权”部分中指出:

    您提供的访问令牌函数在SignalR发出每个HTTP请求之前被调用。如果需要续订令牌以保持连接处于活动状态(因为它可能在连接过程中过期),请在此函数中续订令牌并返回更新的令牌

    因此,您需要在第一次启动连接时发送一个“刷新”令牌。在应用程序上下文中,当令牌过期时,它应该将用户重定向到identity server以刷新令牌,然后再次启动新连接

    在我们公司中,我们使用应用程序令牌与集线器建立持久连接,因此当该令牌过期时,它将强制刷新令牌,这将触发使用新令牌与集线器的新连接