SignalR从javascript客户端连接缓慢

Sim*_*ver 4 signalr

有时需要一秒或更长时间才能从浏览器连接到我的SignalR服务器 - 即使在本地运行时也是如此.我认为websockets是快速的!

Sim*_*ver 6

有一个配置选项告诉SignalR JS客户端load在发送任何内容之前等待页面事件完成.

只需设置waitForPageLoad: false启动选项以防止这种情况发生.当然,如果未加载页面,您必须确保在回调中执行的任何操作都可以安全执行.

像YouTube视频没有加载的任何东西都可以延迟开始 - 所以我不确定为什么它不是更好/更广泛记录!

$.connection.hub.start({ waitForPageLoad: false}).done(function() {

});
Run Code Online (Sandbox Code Playgroud)

摘自源代码(这是我发现的方式):

        // Check to see if start is being called prior to page load
        // If waitForPageLoad is true we then want to re-direct function call to the window load event
        if (!_pageLoaded && config.waitForPageLoad === true) {
            connection._.deferredStartHandler = function () {
                connection.start(options, callback);
            };
            _pageWindow.bind("load", connection._.deferredStartHandler);

            return deferred.promise();
        }
Run Code Online (Sandbox Code Playgroud)