如何使用SignalR事件以正确的方式保持连接?我正在使用SignalR、ASP.NET和C#开发实时客户端-服务器应用程序。我使用本地主机作为主机和VS2013。我的问题是:为什么当我关闭服务器时,网络客户端上会发生“重新连接”事件?“断开连接”事件仅在40秒后发生。如何减少这个时间?我需要客户端在启动时连接到服务器。“重新连接”事件应该只定期发生。如果“重新连接”间隔到期,客户端应作为新客户端连接。如何存档这个目标?最后,我想问一下——如何以正确的方式使用SignalR来保持连接?我正在使用这段代码:C#publicoverrideTaskOnDisconnected(){clientList.RemoveAt(nIndex);Console.WriteLine("断开{0}n",Context.ConnectionId);返回(base.OnDisconnected());}publicoverrideTaskOnReconnected(){Console.WriteLine("Reconnected{0}n",Context.ConnectionId);返回(base.OnReconnected());}使用Javascript$.connection.hub.reconnected(function(){//Html编码显示名称和消息。varencodedName=$('').text("heartbeat").html();varnow=newDate();//将消息添加到页面。$('#discussion').append('Reconnectedtoserver:'+now+'');});$.connection.hub.disconnected(function(){//Htmlencodedisplaynameandmessage.varencodedName=$('').text("heartbeat").html();varnow=newDate();//将消息添加到页面。$('#discussion').append('Disconnectedfromserver:'+now+'');});连接输出后:从服务器收到消息:2014年2月21日星期五10:53:02关闭服务器输出后:Reconnectedtoserver:FriFeb21201410:53:22<--为什么,如果我关闭服务器???与服务器断开连接:2014年2月21日星期五10:53:53<--为什么在服务器关闭后40多秒?1.服务器关闭后,Web客户端会发生Reconnect事件,并且仅发生在Disconnect事件之后。为什么?SignalR无法区分关闭服务器和重新启动服务器。因此,当服务器出现故障时,客户端将开始尝试重新连接,以防服务器实际重新启动。2.“断开连接”发生在未知“重新连接”后的30秒内。如何减少这个时间?可以通过DisconnectTimeout属性修改此30秒超时。3.我需要客户端在启动时连接到服务器。“重新连接”应该只定期发生。如果“重新连接”间隔到期,客户端应作为新客户端连接。您应该在断开连接事件时启动连接,最好在超时后启动,以减少重启时的服务器负载。$.connection.hub.disconnected(function(){setTimeout(function(){$.connection.hub.start();},5000);//5秒后重新开始连接});整个在SignalR文章理解和处理连接生命周期事件可能与您的问题相关。以上就是C#学习教程:如何正确使用SignalR事件保持连接存活?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
