Pirmkārt, es izveidoju jaunu mapi Hubs zem projekta
Zem mapes izveidojiet arī jaunu PositionVehicle failu, kā parādīts šajā attēlā:
Pārveidojiet projektu, un pēc tam skata lapā mēs atsaucamies uz šādiem diviem js failiem
Piezīme!!!
Fails "/Scripts/jquery.signalR-2.2.2.min.js" tiek pievienots SignalR instalācijai un pastāv fiziskajā diskā
"/signalr/hubs" irSignalR tiek ģenerēts automātiski, ko nevar atrast fiziskajā diskā!
Apskatīsim SignalR ģenerēto js failu šādi:
/*! * ASP.NET SignalR JavaScript bibliotēka v2.2.2 * http://signalr.net/
* * Autortiesības (c) .NET Foundation. Visas tiesības aizsargātas. * Licencēts saskaņā ar Apache licenci, versija 2.0. Informāciju par licenci skatiet License.txt projekta saknē.
* */
<atsauces ceļš="..\..\SignalR.Client.JS\Skripti\jquery-1.6.4.js" /> <atsauces ceļš="jquery.signalR.js" /> (funkcija ($, logs, nedefinēts) { <param name="$" type="jQuery" /> "lietot stingri";
if (typeof ($.signalR) !== "funkcija") { mest jaunu kļūdu("SignalR: SignalR nav ielādēts. Lūdzu, pārliecinieties jquery.signalR-x.js ir atsauce pirms ~/signalr/js."); }
var signalR = $.signalR;
funkcija makeProxyCallback(centrmezgls, atzvanīšana) { atgriešanas funkcija () { Klientu centrmezgla metodes izsaukšana callback.apply(centrmezgls, $.makeArray(argumenti)); }; }
funkcija registerHubProxies(instance, shouldSubscribe) { var key, hub, memberKey, memberValue, subscriptionMethod;
for (atslēga instancē) { if (instance.hasOwnProperty(atslēga)) { centrmezgls = instance[atslēga];
ja (!( hub.hubName)) { Nav klientu centrmezgls turpināt; }
if (shouldSubscribe) { Mēs vēlamies abonēt centra pasākumus subscriptionMethod = hub.on; } citādi { Mēs vēlamies atteikties no centra pasākumiem subscriptionMethod = hub.off; }
Pārskatiet visus dalībniekus centrmezglā un atrodiet klientu centrmezgla funkcijas, lai abonētu/atteiktos no abonementa for (memberKey hub.client) { if (hub.client.hasOwnProperty(memberKey)) { memberValue = hub.client[memberKey];
if (!$.isFunction(memberValue)) { Nav klienta centrmezgla funkcija turpināt; }
subscriptionMethod.call(hub, memberKey, makeProxyCallback(hub, memberValue)); } } } } }
$.hubConnection.prototype.createHubProxies = funkcija () { var starpniekserveri = {}; this.starting(funkcija () { Centrmezgla starpniekserveru reģistrēšana kā abonēta (piemēram, jāabonē) registerHubProxies(starpniekserveri, patiesi);
this._registerSubscribedHubs (); }).disconnected(funkcija () { Anulēt visus centrmezgla starpniekserverus, kad mēs "atvienojamies". Tas ir nepieciešams, lai nodrošinātu, ka mēs atkārtoti nepievienojam funkcionālus atzvanus. (piemēram, jāabonē) registerHubProxies(starpniekserveri, nepatiesi); });
starpniekserveri['positionVehicle'] = this.createHubProxy('positionVehicle'); starpniekserveri['positionVehicle'].klients = { }; starpniekserveri['positionVehicle'].server = { Sveiki: funkcija (nosaukums) { return proxies['positionVehicle'].invoke.apply(starpniekserveri['positionVehicle'], $.merge(["Sveiki"], $.makeArray(argumenti))); } };
atgriešanās pilnvarnieki; };
signalR.hub = $.hubConnection("/signalr", { useDefaultPath: false }); $.extend(signālR, signalR.hub.createHubProxies());
}(window.jQuery, window));
Pēc tam pārbaudīsim to, un kods ir šāds:
Testa rezultāti ir šādi:
Pirmos divus ziņojumus, ko mēs saņēmām, nosūtījām paši, un mēs tos arī saņēmām, un trešo ziņojumu nosūtīju es, kurš atvēra citu pārlūkprogrammu, un mēs to arī saņēmām.
Kad es saņēmu ziņojumu, tas nebija tīmekļa ligzda, bet patiesībā HTTP aptauja, jo mūsu js ziņoja par kļūdu
Kas attiecas uz to, kāpēc tika ziņots par js kļūdu, mēs par to runāsim nākamreiz.
|