SignalR - Verbindung.hubName " nicht definiert ist
Habe ich Folgendes SignalR hub class (nur die Obere ist gezeigt):
[HubName("DataServiceHub")]
public class DataServiceHub : Hub, IDataServiceHub, IDisconnect, IConnected
{
.
.
Bin ich dann selbst hosten der hub-in eine Konsolenanwendung mit dem folgenden code in der Main-Funktion:
string hubsUrl = appSettingsReader.GetValue("hubsUrl", typeof(string)).ToString();
var hubsServer = new Server(hubsUrl);
hubsServer.Configuration.DisconnectTimeout = TimeSpan.Zero;
hubsServer.MapHubs();
hubsServer.Start();
Die Werte von hubsUrl "http://localhost:4322/"
Habe ich einmal ausgeführt, bis die Konsole App, Wenn ich Browsen in Chrome "http://localhost:4322/signalr/hubs" ich kann sehen, dass der SignalR-javascript und meinen hub unten:
signalR.dataServiceHub = {
_: {
hubName: 'dataServiceHub',
Ich versuche, eine Verbindung zu diesem hub aus einem MVC3-app, die auf einem HTTPS - /SSL-Einrichtung (D. H. der site-url-Präfix "https://localhost/"
In meinem Rasiermesser Seite, die ich auf jeden Fall gehören die SignalR js:
<script src="/Website/Scripts/kendo/2012.2.710/jquery.min.js" type="text/javascript"></script>
<script src="/Website/Scripts/jquery.signalR-0.5.3.min.js" type="text/javascript"></script>
<script src="http://localhost:4322/signalr/hubs" type="text/javascript"></script>
Beachten Sie, dass wir Kendo-so die jquery-js enthalten ist, ist über, die.
Dann in der $(document).ready(function () { habe ich Folgendes:
jQuery.support.cors = true;
var connection = $.hubConnection('http://localhost:4322');
var hub = connection.dataServiceHub;
Aber 'hub' ist immer 'undefined'.
Was vermisse ich hier?
Wenn diese cross-domain-problem - wie löse ich es?
Dieser Seite relevant ist, da es produzieren kann die "Fehler beim export-hub name" symptom verursacht MapSignalR zu scheitern, aufgrund einer Regelverletzung im NuGet-Pakete. (Das war mein problem.)
InformationsquelleAutor trembler2003 | 2012-11-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hubs haben 2 Programmiermodelle und Sie mischen Sie:
Wenn Sie einen Bildlauf zum unteren Rand derjenigen Seiten, es gibt ein Beispiel, das zeigt, was Sie tun müssen, um cross-domain in jedem der Modelle.
Ein weiterer Hinweis: Wenn ich als host für die gleichen hub-Klasse, die auf einem anderen web-Projekt haben wir (die auf die gleiche localhost Domäne) dann das gleiche javascript-client-code funktioniert (mit der einzigen änderung wird die url festgelegt, die für die $.- Verbindung.hub.- url).
Sie können schauen Sie sich nur das generierte Skript in die remote-Projekt und sehen Sie, wenn der hub bekam generiert oder nicht localhost:4322/signalr/hubs.
wenn Sie meinen laden, die url in einem browser, dann ja, der hub erzeugt wurde - ich lege die Ausgabe von diesem Teil in den ersten post.
Wenn Sie alle Stücke zusammen, können Sie herausfinden, warum es nicht definiert. Wenn Sie das script, es wird eine global $.- Verbindung.hub auf die Seite und $.- Verbindung.hub1..hubn, als Eigenschaften. Wenn Sie einen Blick auf das generierte Skript kann man deutlich sehen, die Elemente, die vorhanden ist, auf dem $.connection-Objekt und das sollte Ihnen eine Ahnung, was schief läuft.
InformationsquelleAutor davidfowl
Überprüfen Sie in Ihrem
global.asax
- Datei, wenn die Linieroutes.Clear();
vorhanden ist, es, bitte entfernen Sie diese Zeile, weil es klares signal Routen.InformationsquelleAutor dineshd87
stellen Sie sicher, dass Sie verweisen, jquery 1.6.4
Ich bin Referenzierung jquery 1.7.1 (über die Aufnahme von Kendo-Sachen). Diese Seite hat auch geklappt gegen einen anderen SignalR-hub und keine änderungen vorgenommen wurden, die javascript enthält.
Dies ist nichts zu tun mit jQuery. Siehe unten meine Antwort
InformationsquelleAutor pranav rastogi