SignalR慢启动连接(和检索数据)

时间:2015-04-02 15:45:44

标签: signalr signalr.client

我已经开始遇到性能问题,尤其是在升级到2.2.0版之后。

对于使用服务器不同集线器的更复杂页面,启动连接最多可能需要30秒:

[16:20:35 GMT+0100 (GMT Daylight Time)] SignalR: serverSentEvents transport connected. Initiating start request.
[16:21:05 GMT+0100 (GMT Daylight Time)] SignalR: The start request succeeded. Transitioning to the connected state.

为了演示这个问题,我创建了一个测试页面,它只使用一个集线器。我在集线器上调用服务器方法,只检索一个int值,而不进行任何数据库调用或任何复杂的计算。

define(["knockout", "jquery", "signalr"],
    function (ko, $) {
        function SignalRTestViewModel() {
            var self = this;
            var connection = $.connection.dashboardHub;

            self.init = function () {
                connection.server.signalRTest();
            };

            self.test = ko.observable();

            connection.client.populateSignalRTest = function (test) {
                self.test(test);
            };
        }

        return SignalRTestViewModel;
    })

启动连接仍需要2-3秒,另外2秒只能检索一个int值。

enter image description here

对于不同的传输方法(serverSentEvents,longPolling),问题是相同的,并且存在于所有浏览器中。

我不太确定如何缩小问题范围,以及可能导致这些延误的原因。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

经过大量的调试后,我发现其中一个依赖项已在我的服务中得到解决,每次解析时都会验证Lucene搜索索引(完全没必要)。

评论出来,一切似乎都好。