信号r:连接还没有完全初始化.使用.start().done()或.start().fail()在连接启动后运行逻辑

本文关键字:start 连接 fail 启动 运行 还没有 初始化 使用 信号 done | 更新日期: 2023-09-27 18:09:23

试图复制一个例子,我遇到的问题是,连接不做,当它从服务器到我的计算机,但当我远程工作,如果它工作。

链接例子

1的链接链接2

这是我的代码

var app = angular.module('app', []);
app.value('$', $);
app.factory('signalRSvc', function ($, $rootScope) {
    return {
        proxy: null,
        initialize: function (acceptGreetCallback) {           
            //Getting the connection object
            connection = $.hubConnection('http://190.109.185.138:8016');         
            //Creating proxy
            this.proxy = connection.createHubProxy('HelloWorldHub');
            //Starting connection
            connection.start({ jsonp: true }).done(function () {
                alert("funciono");
            });
            connection.start({ jsonp: true }).fail(function () {
                alert("fallo");
            });
            //connection.start({ jsonp: true }).done(function () {
            //    console.log("connection started!");
            //});  

            //Attaching a callback to handle acceptGreet client call
            this.proxy.on('acceptGreet', function (message) {
                $rootScope.$apply(function () {
                    acceptGreetCallback(message);
                });
            });
        },
        sendRequest: function (callback) {
            //Invoking greetAll method defined in hub
            this.proxy.invoke('greetAll');
        }
    }
});
app.controller('SignalRAngularCtrl', function ($scope, signalRSvc) {
    $scope.text = "";
    $scope.greetAll = function () {
        signalRSvc.sendRequest();
    }
    updateGreetingMessage = function (text) {
        $scope.text = text;
    }
    signalRSvc.initialize(updateGreetingMessage);
});

信号r:连接还没有完全初始化.使用.start().done()或.start().fail()在连接启动后运行逻辑

您应该只有一个connection.start()而不是两个。您需要将done()fail()添加到该呼叫中。

connection.start({ ... }).done(function() {...}).fail(function() {...})

否则您将尝试启动它两次。由于没有延迟,这似乎可以在本地工作,但在实际情况下,第一个任务不会在第二个任务之前完成。