SignalR - connexion.hubName est pas défini
J'ai le texte suivant SignalR classe hub (seul le haut est indiqué):
[HubName("DataServiceHub")]
public class DataServiceHub : Hub, IDataServiceHub, IDisconnect, IConnected
{
.
.
Je suis alors auto-hébergement le moyeu dans une Application Console en utilisant le code suivant dans la fonction Principale:
string hubsUrl = appSettingsReader.GetValue("hubsUrl", typeof(string)).ToString();
var hubsServer = new Server(hubsUrl);
hubsServer.Configuration.DisconnectTimeout = TimeSpan.Zero;
hubsServer.MapHubs();
hubsServer.Start();
Les valeurs de hubsUrl est "http://localhost:4322/"
Une fois que j'ai couru jusqu'à l'Application de Console Si je navigue dans google Chrome "http://localhost:4322/signalr/hubs" je peux voir le SignalR javascript et mon hub en bas:
signalR.dataServiceHub = {
_: {
hubName: 'dataServiceHub',
Je suis en train d'essayer de se connecter à ce hub à partir d'un MVC3 application qui s'exécute sur un HTTPS/SSL configuration (c'est à dire l'url du site préfixe est "https://localhost/"
Dans mon Rasoir page, j'ai certainement inclure le 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>
Noter que nous sommes à l'aide de Kendo de sorte que le jquery js est via que.
Puis dans le $(document).ready(function () { I sont les suivantes:
jQuery.support.cors = true;
var connection = $.hubConnection('http://localhost:4322');
var hub = connection.dataServiceHub;
Mais " hub "est toujours "indéfini".
Ce qui me manque ici?
Si c'est la croix problème de domaine - comment puis-je le résoudre?
Cette page est pertinent, car il peut produire de la "échec de l'exportation hub nom de" symptôme en provoquant MapSignalR à l'échec, en raison d'un décalage dans les packages NuGet. (Ceci s'est avéré être mon problème.)
OriginalL'auteur trembler2003 | 2012-11-20
Vous devez vous connecter pour publier un commentaire.
Centres de 2 modèles de programmation et vous êtes de mélange:
Si vous faites défiler vers le bas de ces pages, il y a un exemple qui vous montre ce que vous devez faire pour utiliser la croix de domaine dans chacun des modèles.
Une autre remarque: Si je l'hôte de la même classe hub sur un autre projet web, nous avons (qui est sur le même localhost de domaine), puis le même code client javascript fonctionne (avec le seul changement de l'url définie pour l' $.connexion.moyeu.l'url).
Vous pouvez juste regarder le script généré dans le projet à distance et de voir si le hub a obtenu généré ou pas localhost:4322/signalr/hubs.
si tu veux charger l'url dans un navigateur alors oui, le hub a été généré - j'ai mis la sortie de la partie dans le premier post.
Si vous mettez tous les morceaux ensemble, vous pouvez comprendre pourquoi il est pas défini. Lorsque vous incluez ce script, il déclare global $.connexion.moyeu sur la page et $.connexion.hub1..hubn, en tant que propriétés. Si vous regardez le script généré, vous pouvez clairement voir les membres qui existe sur le $.objet de connexion et qui devrait vous donner une idée de ce qui va mal.
OriginalL'auteur davidfowl
Vérifier dans votre
global.asax
fichier, si la ligneroutes.Clear();
est présente, veuillez supprimer cette ligne, car il va effacer les routes de signaux.OriginalL'auteur dineshd87
assurez-vous que vous faites référence à jquery 1.6.4
Je suis référencement jquery 1.7.1 (via l'inclusion de Kendo). Cette page a également travaillé contre un autre SignalR hub et aucune modification n'a été faite pour le javascript.
Ce n'est rien à faire avec jQuery. Voir ma réponse ci-dessous
OriginalL'auteur pranav rastogi