Asp.net web api 信号器2.0.0不';不要像以前的版本那样表现
我已经更新了我的服务器解决方案,以便与MVC 5和最新版本的signalr一起使用,并存在两个主要问题:Asp.net web api 信号器2.0.0不';不要像以前的版本那样表现,asp.net-web-api,signalr,Asp.net Web Api,Signalr,我已经更新了我的服务器解决方案,以便与MVC 5和最新版本的signalr一起使用,并存在两个主要问题: 我已经重写了OnConnected函数,并且它没有被调用 未接收到发送给客户端的消息,正在接收来自客户端的呼叫 这是客户端代码 define(['jquery', 'toastr', 'Q'], function($, toastr, Q) { var incidentHubProxy; var deferred = Q.defer(); var connect = function()
OnConnected
函数,并且它没有被调用define(['jquery', 'toastr', 'Q'], function($, toastr, Q) {
var incidentHubProxy;
var deferred = Q.defer();
var connect = function() {
var connection = $.hubConnection(localStorage.url);
$.connection.hub.logging = true;
incidentHubProxy = connection.createHubProxy('notification');
connection.start()
.done(function () {
toastr.success('Now connected, connection ID=' + connection.id);
setInterval(function () {
incidentHubProxy.invoke('ping');
}, 3000);
deferred.resolve();
})
.fail(function () { toastr.error('Could not connect'); });
incidentHubProxy.on('notify', function (data) {
toastr.info(data.topic);
toastr.info(data.data);
});
incidentHubProxy.on('pong', function (data) {
toastr.info('got pong');
});
return deferred.promise;
};
var joinGroup = function (groupName) {
incidentHubProxy.invoke('joinGroup', groupName);
};
return {
connect: connect,
joinGroup: joinGroup
};
});
我已经更新了代码,但仍然不工作
定义(['jquery','toastr','Q'],函数($,toastr,Q){
})) 在不同的版本中,编写JS客户端需要注意的建议是不同的(这就是您的客户端,您没有说过吗?)“在调用
start
方法之前,您必须注册至少一个事件处理程序。”-您在这样做吗?我的客户端是JS,而且我已经将其升级到signalr 2.0.0,我将发布客户端代码,并在您的客户端代码中查看您在调用start
后如何注册事件处理程序?更新了代码但仍然不工作它应该是incidentHubProxy.client.notify=…
,而不是incidentHubProxy.notify=…
。或者您仍然可以使用on()
表单。不知道你为什么要改变它。
var incidentHubProxy;
var deferred = Q.defer();
var connect = function() {
var connection = $.hubConnection(localStorage.url);
$.connection.hub.logging = true;
incidentHubProxy = connection.createHubProxy('notification');
incidentHubProxy.notify = function(data) {
toastr.info(data.topic);
toastr.info(data.data);
};
incidentHubProxy.pong = function(data) {
toastr.info('got pong');
};
connection.start()
.done(function () {
toastr.success('Now connected, connection ID=' + connection.id);
setInterval(function () {
incidentHubProxy.invoke('ping');
}, 3000);
deferred.resolve();
})
.fail(function () { toastr.error('Could not connect'); });
return deferred.promise;
};
var joinGroup = function (groupName) {
incidentHubProxy.invoke('joinGroup', groupName);
};
return {
connect: connect,
joinGroup: joinGroup
};