Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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
Android 当我的移动数据连接断开时,如何断开信号器中的连接_Android_Asp.net_Signalr_Signalr Hub - Fatal编程技术网

Android 当我的移动数据连接断开时,如何断开信号器中的连接

Android 当我的移动数据连接断开时,如何断开信号器中的连接,android,asp.net,signalr,signalr-hub,Android,Asp.net,Signalr,Signalr Hub,我已经用Android应用程序实现了ASP.NET信号器。该应用程序运行良好,但存在一个问题。当我关闭数据连接时,Signal需要时间来断开onConnected()时创建的连接id,因为它会尝试建立连接,直到断开连接的时间达到断开连接的时间为止,它会尝试继续建立连接,因此大约1.5分钟的时间段使应用程序变得无用。这是我不想要的。我想,如果一个连接中断,由于失去连接应立即断开。有人能解决这个问题吗 您应该创建自己的方法来停止此类事件上的客户端连接。您可能会使用类似的方法 connection.h

我已经用Android应用程序实现了ASP.NET信号器。该应用程序运行良好,但存在一个问题。当我关闭数据连接时,Signal需要时间来断开onConnected()时创建的连接id,因为它会尝试建立连接,直到断开连接的时间达到断开连接的时间为止,它会尝试继续建立连接,因此大约1.5分钟的时间段使应用程序变得无用。这是我不想要的。我想,如果一个连接中断,由于失去连接应立即断开。有人能解决这个问题吗

您应该创建自己的方法来停止此类事件上的客户端连接。您可能会使用类似的方法

connection.hub.stop();
但是,如果您确实希望服务器不等待,您将调整断开连接超时,但是如果您这样做,则必须相应地调整保持活动超时(如果手动设置)

断开连接超时

此设置表示在引发断开连接事件之前,传输连接丢失后等待的时间量。默认值为30秒。设置DisconnectTimeout时,KeepAlive会自动设置为DisconnectTimeout值的1/3

    // Wait a maximum of 30 seconds after a transport connection is lost
    // before raising the Disconnected event to terminate the SignalR connection.
    GlobalHost.Configuration.DisconnectTimeout = TimeSpan.FromSeconds(30);

我试图将断开超时设置为crackhaus,但信号器甚至不进行连接,并且如果android的数据连接已断开,则没有方法调用方法。您将断开超时设置为什么?我将断开超时设置为3,并关闭保持活动时间。您不能关闭保持活动时间,除非您执行长轮询,保持活动-此设置表示在通过空闲连接发送keepalive数据包之前等待的时间量。默认值为10秒。此值不得超过DisconnectTimeout值的1/3。所以,如果将断开连接超时设置为3,则保持活动状态应为1。我使用的是长池crackhaus。因为我在连接Android时遇到了一些问题,所以我爱上了最后一个。