SignalR JS Client Methods Not Invoked

后端 未结 2 1290
醉酒成梦
醉酒成梦 2020-12-20 20:51

I\'m having trouble getting SignalR server-side Hub code to invoke JS client methods. The reverse is working fine - so when my client sends a message to the server it is del

相关标签:
2条回答
  • 2020-12-20 21:27

    When you hover over the Clients object, do you see all the functions you defined in JS?

    Anyway,I'm not sure why your way doesn't work, but this is how I wrote my client side, and it works. Maybe you could try this way.

    $(function () {
    
        var hub = $.connection.RatesHub;
    
    
        $.connection.hub.start().done(function () {
            /*Logic goes here*/
        });
    
        $.extend(hub.client, {
            FuncName: function (msg) {
                /*Logic goes here*/
            }
        });
    
    }
    

    Any function you want to be recognized in your server, use $.extend.

    Hope that helps.

    0 讨论(0)
  • 2020-12-20 21:36

    So, the answer was actually quite simple (though since the last release I have upgraded from 1.0.0.0-rc1 to 1.0.0.0 - but I'm fairly certain that didn't change this scenario signficantly).

    I found the answer here: https://stackoverflow.com/a/15074002/32935 (note, specifically, my solution was for the first answer provided - though the second helped me identify the cause).

    Essentially, for those who don't want to go over to the original answer, I had to setup my client methods before calling the start() method against the connection as opposed to in the done() callback as I was doing. Here's an example:

    $.connection.message.client.addMessage = function (message) {
        alert( 'Now it works!' );
    };
    
    $.connection.hub.start()
        .done(function () {
            console.log( 'Connection established!' );
        });
    
    0 讨论(0)
提交回复
热议问题