SignalR调用方法:必须先启动连接,然后才能发送数据

SignalR invoke method: connection must be started before data can be sent

本文关键字:然后 数据 连接 启动 方法 调用 SignalR      更新时间:2023-09-26

这里和GitHub有很多"必须先启动连接才能发送数据"的问题,但我几乎没有发现与hub相关的问题。

$(function () {
        // Declare a proxy to reference the hub. 
        var connection = $.hubConnection('http://www.website.net/');
        var chat = connection.createHubProxy('MyHub');
        // Start the connection.
        $.connection.hub.start().done(function () {
            console.log('Connect! connection Id=' + $.connection.hub.id);
            $('#sendmessage').click(function () {
                chat.invoke('method1','0000').done(function () {
                    console.log ('Invocation of method1 succeeded');
                }).fail(function (error) {
                    console.log('Invocation of method1 failed. Error: ' + error);
                });
            });
        })
        .fail(function(){ console.log('Could not Connect!'); });
    });

上面的代码给出了在用户单击按钮时执行一个方法。我可以检查该方法是否适用于我的WPF.NET应用程序。

我可以成功地获得连接Id,但当我单击按钮时,它会显示"SignalR invoke method:必须启动连接才能发送数据"。在.send()'错误之前调用.start()。

我做错了什么?

仔细阅读教程,它现在就可以工作了。

 $(function () {
        // Declare a proxy to reference the hub. 
        var connection = $.hubConnection('http://www.website.net/');
        var chat = connection.createHubProxy('MyHub');
        connection.start().done(function() {
            console.log('Now connected, connection ID=' + connection.id); 
            // Wire up Send button to call sendmessage on the server.
            $('#sendmessage').click(function () {
                chat.invoke('method1', '0000');
                });
            })
            .fail(function(){ console.log('Could not connect'); });;
    });
相关文章: