Asp.net web api 信号器2.0.0不';不要像以前的版本那样表现

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()

我已经更新了我的服务器解决方案,以便与MVC 5和最新版本的signalr一起使用,并存在两个主要问题:

  • 我已经重写了
    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
    };