信令过期后在signalR中更新信令。

问题描述 投票:0回答:1

我通过SignalR从客户端(angular 9)和服务器(asp.net core 3.1)创建一个实时连接,并通过JWT Token授权枢纽,如以下代码。

 private createConnection() {
      this.hubConnection = new HubConnectionBuilder().withUrl(`${this.appConfig.hubEndpoint}/Hubs`,
        { accessTokenFactory: () => jwtToken })
        .withAutomaticReconnect()
        .build();
  }

  private startConnection(): void {
    this.hubConnection
      .start()
      .then(() => {
        this.connectionIsEstablished = true;
        this.connectionEstablished.emit(true);
      })
      .catch(err => {
        console.log('Error while establishing connection, retrying...');
      });
  }

这工作正常,直到token过期。根据我的研究,在收到新的刷新令牌后,应该停止之前的连接,并使用新的令牌创建一个新的连接,现在我想知道我应该如何做?我必须不断检查令牌吗?还是应该通过向服务器发送每个请求来解决这个问题?

angular asp.net-core signalr refresh-token
1个回答
0
投票

当token过期时,连接将被服务器放弃,你将在服务器端出现错误。我相信是405错误代码 Method now allowed 你会得到的。

所以你需要的是抓住这个令牌过期的错误,并放弃这个连接,这样你就可以用新的令牌开始一个新的连接。

© www.soinside.com 2019 - 2024. All rights reserved.