【问题标题】:Server frequently loses Azure SignalR connection服务器经常丢失 Azure SignalR 连接
【发布时间】:2019-02-20 18:57:40
【问题描述】:

我的 ASP.NET Web API(目标框架:.NET Framework 4.6.2)项目经常失去与 Azure SignalR 服务(免费层)的连接。我已经按照 aspnet 'chatroom' example 中的示例进行了操作。

我的客户端应用程序基于 Angular JS。正在向客户端发送消息,但几个小时后,与 Azure SignalR 服务的服务器连接丢失并且无法再次建立。

据我从 MS Azure SignalR Internals documentation 了解到:

如果服务器连接因网络问题而断开,

  • 服务器连接开始自动重新连接。

作为响应返回以下错误:

Azure SignalR 服务尚未连接,请稍后重试

但是,这似乎没有发生,即没有再次建立与 Azure SignalR 服务的服务器连接。

nuget 包:

  • Microsoft.AspNet.SignalR v2.4.0
  • Microsoft.AspNet.SignalR.Core v2.4.0
  • Microsoft.AspNet.SignalR.SystemWeb v2.4.0
  • Microsoft.Azure.SignalR.AspNet v1.0.0-preview1-10317
  • Microsoft.Azure.SignalR.Protocols v1.0.6

【问题讨论】:

    标签: c# asp.net azure signalr azure-signalr


    【解决方案1】:

    目前有一个issueMicrosoft.Azure.SignalR.AspNet v1.0.0-preview1-10317。该修复程序计划于本周发布。

    【讨论】:

      【解决方案2】:

      您是否在客户端中添加了如下错误处理代码-

       // Define handlers for any errors
              //
              this.hubConnection.error((error: any) => {
                  // Push the error on our subject
                  //
                  this.hubConnection.start()
                      .done(() => {
                          this.startingSubject.next();
      
                          //Invoke connect method on Hub
                          //  this.hubProxy.invoke("Connect", userId, usertype);
      
                      })
                      .fail((error: any) => {
                          this.startingSubject.error(error);
                      });
              });

      另外在关闭连接的情况下,代码会是这样的

      this.hubConnection.onclose(() => { 
          setTimeout(function(){
          this.hubConnection.start()
                     .done(() => {
                          this.startingSubject.next();
      
                              //Invoke connect method on Hub
                            //  this.hubProxy.invoke("Connect", userId, usertype);
      
                         })
                        .fail((error: any) => {
                              this.startingSubject.error(error);
                         });
             },3000); 
         }); 

      希望对你有帮助。

      MV

      【讨论】:

      • 服务器与 Azure SignalR 服务的连接丢失。此代码用于重新连接客户端。
      猜你喜欢
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多