2012-11-28 12 views
7

Sto seguendo questo breve tutorial su come ottenere un progetto SignalR iniziato, e nella mia classe Hub, ho il seguenteSignalR demo non funziona

using Microsoft.AspNet.SignalR.Hubs; 

namespace MvcApplication8.Hubs 
{ 
    public class ChatHub : Hub 
    { 
     public void BroadcastMessage(string message) 
     { 
      Clients.writeMessage(message); 
     } 
    } 
} 

Codice cliente:

$(document).ready(function() { 
     var chat = $.connection.chatHub; 
     chat.writeMessage = function(msg) { 
      $("#messages").append("<li>" + msg + "</li>"); 
     }; 
     $("#buttonSubmit").click(function() { 
      chat.broadcastMessage($("#txtInput").val()); 
     }); 
     $.connection.hub.start(); 
    }); 

Comunque io 'm ricevendo un errore di compilazione dicendo:

'Microsoft.AspNet.SignalR.Hubs.HubConnectionContext' non contiene una definizione per 'writeMessage' e nessun metodo di estensione 'writeMessage' accettando un primo argomento di tipo 'Microsoft.AspNet.SignalR.Hubs.HubConnectionContext' potrebbe essere trovato (manca una direttiva using o un riferimento di assembly?)

Dove è andato storto?

ho installato SignalR nel mio progetto da http://nuget.org/packages/microsoft.aspnet.signalr utilizzando il pacchetto console manager "Install-Package Microsoft.AspNet.SignalR -Pre"

+0

Ho modificato il mio post per includere il messaggio effettivo Wow, un voto verso il basso solo per questo? dicendomi che sarebbe stato sufficiente. Errore di compilazione, ho davvero bisogno di chiedere esplicitamente "come faccio a eliminare l'errore di compilazione?" –

risposta

1

Hai creato il corrispondente client-funzione?

<script type="text/javascript"> 
    $(function() { 
     var chat = $.connection.chat; 
     chat.writeMessage = function (message) { 
      $('#messages').append('<li>' + message + '</li>'); 
     }; 
     $.connection.hub.start(); 
    }); 
</script> 
+0

Sì, ho aggiornato il mio post principale con il mio codice cliente –

1

Controllate se avete i seguenti pacchetti installati:

  • Microsoft.AspNet.SignalR
  • Microsoft.AspNet.SignalR.Core
  • Microsoft.AspNet.SignalR.Hosting.AspNet
  • Microsoft.AspNet.SignalR.Hosting.Common
0

Prova ad aggiornare i pacchetti NuGet. STRUMENTI> NuGet Package Manager> Gestisci pacchetti NuGet per soluzione, nella parte sinistra della finestra fai clic su "Aggiornamenti", nella parte centrale di Windows ottieni l'elenco dei pacchetti da aggiornare, quindi fai clic su "Installa" sul pacchetto ti piace per ottenere l'ultima versione. Aggiorno tutto: JQuery, Json.NET, Microsoft ASP.NET SignalR, Microsoft.Owin

Dopo aver aggiornato i pacchetti alla versione più recente (SignalR Attualmente 2.2.0) è possibile compilare. Non dimenticate i riferimenti di aggiornamento in "StockTicker.html", nel mio caso dopo l'aggiornamento questo sguardo come:

<script src="/Scripts/jquery-2.1.4.min.js"></script> 
<script src="/Scripts/jquery.signalR-2.2.0.js"></script>