Signalr jquery一直在断开连接

时间:2015-06-17 20:28:04

标签: angularjs azure signalr

对于SignalR jQuery客户端,我遇到以下情况:

  • 服务器作为辅助角色 Azure 托管
  • REST API使用 WebApi2
  • 实施
  • 推送集线器提供 SignalR
  • 有2个客户:
    • 的Android
    • 基于 angularjs 的Webapp,它在应用程序的主要状态下使用ui-router和SingnalR jQuery客户端(这个状态在webapp关闭时死亡)

以下是我如何得到异常:

  • Android客户端调用REST API,调用服务器上的推送集线器。推送集线器向角客户端发送通知
  • 角度客户端接收通知并在服务器上调用另一个api,该服务器在Android客户端上发送GCM通知。当客户端收到200 OK作为对被调用REST API的响应时,它会调用在localhost中运行的服务器上托管的另一个API(启用了CORS)
  • 此时SignalR客户端与服务器断开连接,无法以稳定的方式重新连接到服务器:它保持断开连接并重新连接
  • 如果角客户端保持活动几分钟(比如几小时),就会出现这种异常现象
  • 刷新页面可修复问题

您是否有关于如何在不刷新页面的情况下解决此问题的想法?

提前致谢

1 个答案:

答案 0 :(得分:1)

尝试启用"始终开启"您的网络应用程序的功能,这可以通过Web应用程序设置完成。

Azure App Service的工作原理是网站内容存储在文件服务器上,然后网站工作人员在活动时加载该网站。如果应用程序处于空闲状态,它将被卸载,导致进程被终止并且SignalR客户端断开连接。始终开启意味着您的网络应用程序始终已加载。

有关配置网络应用程序的文档,请访问:https://azure.microsoft.com/en-us/documentation/articles/web-sites-configure/