2013-07-03 3 views
7

Ci sono molti "problemi di connessione prima che i dati possano essere inviati" qui e GitHub, ma difficilmente trovo i problemi relativi all'hub.Metodo di richiamo del segnale: la connessione deve essere avviata prima che i dati possano essere inviati

$(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!'); }); 
    }); 

Il codice precedente consente di eseguire un metodo quando l'utente fa clic sul pulsante. Posso verificare che il metodo funzioni con la mia app WPF .NET.

È possibile ottenere l'ID di connessione correttamente, ma quando si fa clic sul pulsante viene visualizzato il messaggio "Metodo di richiamo del segnale: la connessione deve essere avviata prima che i dati possano essere inviati. Chiama .start() prima dell'errore .send() '.

Cosa ho sbagliato?

risposta

7

Leggi tutorial attentamente e ora funziona.

$(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'); });; 
    }); 
+1

Buon punto, il tutorial non spiega che la connessione e il proxy hub devono essere inizializzati prima di iniziare una connessione – Raffaeu