2012-11-28 5 views
7

Obserwuję ten krótki tutorial na uzyskanie projekt SignalR rozpoczął, aw mojej klasie Hub, mam następującySignalR demo nie działa

using Microsoft.AspNet.SignalR.Hubs; 

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

kod Klient:

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

Jednak ja jestem coraz błąd kompilacji czas mówiąc:

«Microsoft.AspNet.SignalR.Hubs.HubConnectionContext» nie zawiera Definicja "writeMessage" i brak metody rozszerzającej "writeMessage" przyjęcie pierwszego argumentu typu "Microsoft.AspNet.SignalR.Hubs.HubConnectionContext" można znaleźć (czy brakuje dyrektywy dotyczącej użycia lub odniesienia do zespołu?)

Gdzie poszło nie tak?

zainstalowałem SignalR do mojego projektu z http://nuget.org/packages/microsoft.aspnet.signalr pomocą konsoli menedżera pakietów "Install-package Microsoft.AspNet.SignalR -Pre"

+0

Mam edytowanej mój post obejmuje rzeczywiste wiadomość wow, głosowania w dół tylko do tego? mówienie mi, że to byłoby wystarczające. Dostaję błąd czasu kompilacji, czy naprawdę muszę jawnie zapytać "jak pozbyć się błędu czasu kompilacji?" –

Odpowiedz

1

Czy utworzyć odpowiedni klient-funkcji?

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

Tak, zaktualizowałem mój główny wpis za pomocą kodu klienta –

1

Sprawdź, czy masz zainstalowane następujące pakiety:

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

Spróbuj zaktualizować pakiety NuGet. NARZĘDZIA> Menedżer pakietów NuGet> Zarządzaj pakietami NuGet dla rozwiązania, w lewej części okna kliknij na "Aktualizacje", w centralnej części okna pojawi się lista pakietów do zaktualizowania, a następnie kliknij "Zainstaluj" nad pakietem lubisz aby uzyskać najnowszą wersję. Aktualizuję wszystkie: JQuery, Json.NET, Microsoft ASP.NET SignalR, Microsoft.Owin

Po aktualizacji pakietów do najnowszej wersji (SignalR 2.2.0) można kompilować. Nie zapomnij referencje aktualizacji w „StockTicker.html”, w moim przypadku po aktualizacji to wygląda:

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