信号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);
});
您应该只有一个connection.start()
而不是两个。您需要将done()
和fail()
添加到该呼叫中。
connection.start({ ... }).done(function() {...}).fail(function() {...})
否则您将尝试启动它两次。由于没有延迟,这似乎可以在本地工作,但在实际情况下,第一个任务不会在第二个任务之前完成。