Ich versuche SignalR mein Projekt (ASPNET MVC 4) gelesen hinzuzufügen. Aber ich kann es nicht funktionieren lassen.SignalR kann nicht Eigentum Client undefinierter
Im unteren Bild, das Sie den Fehler sehen kann ich empfangen werde. Ich habe eine Menge von Stackoverflow Beiträge lesen, aber keiner von ihnen mein Problem ist zu lösen.
Das ist, was ich bisher getan: Das ist mein IServerHub.cs Datei (die sich innerhalb Hubs Ordner)
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)
Dies ist mein 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>
}
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 DLL Ich sehe Referenzen für SignalR sind:
- Microsoft.AspNet.SignalR.Core
- Microsoft.AspNet.SignalR.Owin
- Microsoft.AspNet.SignalR.SystemWeb
Irgendwelche Ideen, wie es funktionieren zu bekommen? Sollte ich Änderungen vornehmen, weil sich die Skripte im Ordner/Script/lib befinden?
HINWEIS Ich folge der Anweisung gefunden here wie Windsor Castle einzurichten, um es mit SignalR funktioniert, und wieder scheint, dass der Proxy kann nicht erstellt werden, und ich bin mit dem gleichen Fehler:
Cannot read property client of undefined
was bedeutet, dass der Proxy an die Nabe nicht
erstellt wurdeDies ist, wie ich es in dem Server
public class IncidentServerHub : Hub
und wie dies in der Client-
var clientServerHub = $.connection.incidentServerHub;
Auch hier kann ich die dynamisch erstellte Datei hier sehen:
/GdpSoftware.Server.Web/signalr/hubs
So, Warum ist der Proxy nicht erstellt?
Vielen Dank im Voraus !!! Guillermo.
Sie können mit versuchen '' – nemesv
Das gleiche geschieht, jedenfalls sehe ich den Dateiinhalt beim Durchsuchen vom Browser aus. Sollte ich etwas ändern, weil die Skripte im Ordner/Script/lib sind? – polonskyg