1

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

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

据我从 MS Azure SignalR Internals文档中了解到:

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

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

作为响应返回以下错误:

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
4

2 回答 2

0

目前存在一个问题Microsoft.Azure.SignalR.AspNet v1.0.0-preview1-10317该修复程序计划于本周发布。

于 2019-02-25T08:00:54.210 回答
-1

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

 // 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

于 2019-02-21T04:45:19.893 回答