J'essaye d'ajouter la fonctionnalité de douille de Web utilisant le signalR, basé sur: le chat example.
I have 2 différent projet - 1: est serveur pur, comprend web api: j'ai une méthode Web pour obtenir la demande et appeler au moyeu:
[HttpGet]
[Route("api/GetData")]
public IHttpActionResult GetCorpDataApi()
{
return Ok(getResponse());
**startWebSocket();**
}
le début procédé de prise Web appelle à:
private void startWebSocket()
{
MonitorHub hub = new MonitorHub();
Timer myTimer = new Timer();
myTimer.Elapsed += new ElapsedEventHandler(hub.DisplayTimeEvent);
myTimer.Interval = 3000;
myTimer.Start();
}
qui appelle à une méthode dans mon hub:
public class MonitorHub : Hub
{
public void DisplayTimeEvent(object source, ElapsedEventArgs e)
{
var response = MonitorUtils.GetCorpData();
Clients.All.broadcastMessage(response);
}
}
(Tout est dans le même projet, compilé sans erreurs).
Mon code client se trouve dans le projet angulaire client (également sous VS), j'ai ajouté la fonctionnalité requise dans le contrôleur:
function initWebSocket() {
self.chatHub = null; // holds the reference to hub
self.chatHub = $.connection.MonitorHub; // **I dont have MonitorHub**
$.connection.hub.start();
self.chatHub.client.broadcastMessage = function (response) {
//bla bla
};
}
Je tiens à mentionner que je compris dans le index.html fichiers:
<script src="scripts/Vendor/jquery/jquery-2.2.1.js"></script>
<script src="scripts/Vendor/jquery/jquery.signalR-2.2.1.js"></script>
<script src="scripts/signalr/hubs"></script>
<script src="assets/global/plugins/angularjs/angular.min.js" type="text/javascript"></script>
$ .connection.MonitorHub ne reçoit rien - indéfini. Je crois vraiment que cela a quelque chose à voir avec le fait que le côté serveur est dans un projet différent de celui du côté client. Quand je cours un exemple simple comme l'exemple de chat, cela fonctionne - tout dans le même projet.
Je reçois dans la console cette erreur: Erreur: SignalR: erreur de chargement des concentrateurs. Assurez-vous que la référence de votre concentrateur est correcte, par ex. .
Une idée?
Merci, mais ce n'est pas le cas. Je reçois toujours une erreur dans la console de: Erreur: SignalR: Erreur de chargement des concentrateurs. Assurez-vous que la référence de votre concentrateur est correcte, par ex. . – moshi
ok. Vérifiez si vous rencontrez un problème d'incompatibilité de chemin d'accès aux ressources avec les fichiers js. – Tushar
Je ne vois pas (quand j'inspecte avec f12) n'importe quel dossier signalr/hubs ... – moshi