SignalR kann Property Client von undefined nicht lesen
Ich versuche, meinem Projekt SignalR hinzuzufügen (ASPNET MVC 4). Aber ich kann es nicht zum Laufen bringen.
Im Bild unten sehen Sie den Fehler, den ich erhalte. Ich habe viele Stackoverflow-Posts gelesen, aber keiner von ihnen behebt mein Problem.
Das habe ich bisher gemacht:
1) Ran Install-Package Microsoft.AspNet.SignalR -Pre
2) Added RouteTable.Routes.MapHubs(); in Global.asax.cs Application_Start()
3) If I go to http://localhost:9096/Gdp.IServer.Web/signalr/hubs I can see the file content
4) Added <modules runAllManagedModulesForAllRequests="true"/> to Web.Config
5) Created folder Hubs in the root of the MVC application
6) Moved jquery and signalR scripts to /Scripts/lib folder (I'm not using jquery 1.6.4, I'm using the latest)
Das ist meine Index.cshtml
<h2>List of Messages</h2>
<div class="container">
<input type="text" id="message" />
<input type="button" id="sendmessage" value="Send" />
<input type="hidden" id="displayname" />
<ul id="discussion">
</ul>
</div>
@section pageScripts
{
<!--Reference the SignalR library. -->
<script src="@Url.Content("~/Scripts/jquery.signalR-1.0.0-rc1.min.js")" type="text/javascript"></script>
<!--Reference the autogenerated SignalR hub script. -->
<script type="text/javascript" src="~/signalr/hubs"></script>
<script src="@Url.Content("~/Scripts/map.js")" type="text/javascript"></script>
}
Dies ist meine IServerHub.cs-Datei (im Hubs-Ordner)
namespace Gdp.IServer.Ui.Web.Hubs
{
using Microsoft.AspNet.SignalR.Hubs;
[HubName("iServerHub")]
public class IServerHub : Hub
{
public void Send(string name, string message)
{
Clients.All.broadcastMessage(name, message);
}
}
}
Und das ist map.js
$(function () {
// Declare a proxy to reference the hub.
var clientServerHub = $.connection.iServerHub;
// Create a function that the hub can call to broadcast messages.
clientServerHub.client.broadcastMessage = function (name, message) {
$('#discussion').append('<li><strong>' + name + '</strong>: ' + message + '</li>');
};
// Get the user name and store it to prepend to messages.
$('#displayname').val(prompt('Enter your name:', ''));
// Set initial focus to message input box.
$('#message').focus();
// Start the connection.
$.connection.hub.start().done(function () {
$('#sendmessage').click(function () {
// Html encode display name and message.
var encodedName = $('<div />').text($('#displayname').val()).html();
var encodedMsg = $('<div />').text($('#message').val()).html();
// Call the Send method on the hub.
clientServerHub.server.send(encodedName, encodedMsg);
// Clear text box and reset focus for next comment.
$('#message').val('').focus();
});
});
});
Die DLLs, die ich für SignalR sehe, sind:
Microsoft.AspNet.SignalR.CoreMicrosoft.AspNet.SignalR.OwinMicrosoft.AspNet.SignalR.SystemWebIrgendwelche Ideen, wie man es zum Laufen bringt? Muss ich Änderungen vornehmen, da sich die Skripte im Ordner / Script / lib befinden?
HINWEIS Ich folge den gefundenen AnweisungenHier Wie man Windsor Castle so einrichtet, dass es mit SignalR funktioniert? Auch hier scheint es, dass der Proxy nicht erstellt werden kann und ich den gleichen Fehler erhalte:
Cannot read property client of undefined
Dies bedeutet, dass der Proxy für den Hub nicht erstellt wurde
So habe ich es auf dem Server
public class IncidentServerHub : Hub
und so im Client
var clientServerHub = $.connection.incidentServerHub;
Auch hier kann ich die dynamisch erstellte Datei sehen:
/GdpSoftware.Server.Web/signalr/hubs
Warum wird der Proxy nicht erstellt?
Danke im Voraus!!! Guillermo.