【问题标题】:SignalR - how to disable WebSockets (but keep other transports active)?SignalR - 如何禁用 WebSockets(但保持其他传输活动)?
【发布时间】:2017-03-11 18:14:03
【问题描述】:

在 C# 客户端和 Web 客户端中 - 我如何告诉 signalR - “尝试一切但 websockets”?

我的网页代码中有以下内容:

 window.hubReady = $.connection.hub.start({ transport: 'longPolling' });

但这只是 javascript 和 longpolling;我正在寻找 JS 和 C# 客户端的配置,以仅删除 websockets 作为传输。如何做到这一点?

【问题讨论】:

    标签: c# signalr signalr-hub


    【解决方案1】:

    在服务器上:

     public class Startup    
     {
         public void Configuration(IAppBuilder app)
         {
             DisableWebSockets(GlobalHost.DependencyResolver);
    
             HubConfiguration hubConfiguration = new HubConfiguration();
             hubConfiguration.EnableDetailedErrors = true;
             app.MapSignalR(hubConfiguration);
         }
    
         public static void DisableWebSockets(IDependencyResolver resolver)
         {
             var manager = resolver.Resolve<ITransportManager() as TransportManager;
             manager.Remove("webSockets");
         }
     }
    

    在客户端:

    $.connection.hub.start({ transport: ['serverSentEvents', 'foreverFrame', 'longPolling'] }).done(function () {...}
    

    编辑 - 添加括号

    【讨论】:

    • 哇!我怎样才能取得联系?我看到你在做咨询,如果你愿意的话,我对一些有偿帮助很感兴趣。
    • @SB2055 你可以通过LinkedIn联系我。
    • 我没有 Premium(或您的个人资料) - 还有其他方法吗?
    • 我也没有保费。如果您访问我的 SO 个人资料,您会看到一个指向我的 LinkedIn 页面的链接,其中包含联系信息。我不喜欢在这里发布个人资料。
    • 错字;这个:var manager = resolver.Resolve&lt;ITransportManager()&gt; as TransportManager;应该是var manager = resolver.Resolve&lt;ITransportManager&gt;() as TransportManager;
    猜你喜欢
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 2017-06-01
    相关资源
    最近更新 更多