Esiteks lõin projekti alla uue Hubs kausta
Samuti loo kausta alla uus PositionVehicle fail, nagu näidatud järgmises joonises:
Ehitame projekti uuesti üles ja seejärel viitame järgmistele kahele js-failile vaate lehel
Märkus!!!
"/Scripts/jquery.signalR-2.2.2.min.js" fail lisatakse SignalR-i installimisele ja eksisteerib füüsilisel kettal
"/signalr/hubs" onSignalR genereeritakse automaatselt, mida füüsiliselt kettalt ei leia!
Vaatame SignalR-i genereeritud js-faili järgmiselt:
/*! * ASP.NET SignalR JavaScripti teek v2.2.2 * http://signalr.net/
* * Autoriõigus (c) .NET Foundation. Kõik õigused kaitstud. * Litsentseeritud Apache litsentsi alusel, versioon 2.0. Vaata License.txt projekti juurest litsentsiinfo saamiseks.
* */
<reference path="..\..\SignalR.Client.JS\Scripts\jquery-1.6.4.js" /> <viite tee="jquery.signalR.js" /> (funktsioon ($, aken, määratlemata) { <param name="$" type="jQuery" /> "kasuta rangelt";
if (typeof ($.signalR) !== "funktsioon") { throw new Error ("SignalR: SignalR ei ole laaditud. Palun veenduge, et jquery.signalR-x.js oleks viidatud enne ~/signalr/js."); }
var signalR = $.signalR;
function makeProxyCallback(hub, callback) { Tagasipöördumise funktsioon () { Kutsu kliendi keskuse meetodit callback.apply(hub, $.makeArray(argumendid)); }; }
function registerHubProxies(instance, shouldSubscribe) { var key, hub, memberKey, memberValue, subscriptionMethod;
for (näiteks võti) { if (instance.hasOwnProperty(key)) { hub = instance[key];
kui (!( hub.hubName)) { Ei ole kliendikeskus jätka; }
if (shouldSubscribe) { Soovime tellida hub üritusi subscriptionMethod = hub.on; } muidu { Soovime loobuda hub-üritustest tellimusest subscriptionMethod = hub.off; }
Läbi kõik liikmed keskuses ja leia kliendi hubi funktsioonid, et tellida või tühistada for (memberKey in hub.client) { if (hub.client.hasOwnProperty(memberKey)) { memberValue = hub.client[memberKey];
if (!$.isFunction(memberValue)) { Ei ole kliendikeskuse funktsioon jätka; }
subscriptionMethod.call(hub, memberKey, makeProxyCallback(hub, memberValue)); } } } } }
$.hubConnection.prototype.createHubProxies = funktsioon () { var proxies = {}; this.starting(funktsioon () { Registreeri keskuse proksid tellituks (instance, shouldSubscribe) registerHubProxies (proksid, tõene);
this._registerSubscribedHubs(); }).disconnected(funktsioon () { Tühista kõik keskuse proksid, kui me "ühenduse katkestame". See on selleks, et tagada, et me ei lisa funktsionaalseid tagasikõnesid uuesti. (instance, shouldSubscribe) registerHubProxies (proksid, vale); });
proksies['positionVehicle'] = this.createHubProxy('positionVehicle'); proxyes['positionVehicle'].client = { }; proxies['positionVehicle'].server = { Tere: funktsioon (nimi) { return proxies['positionVehicle'].invoke.apply(proxies['positionVehicle'], $.merge(["Hello"], $.makeArray(arguments))); } };
tagastavad proxy'd; };
signalR.hub = $.hubConnection("/signalr", { useDefaultPath: false }); $.extend(signalR, signalR.hub.createHubProxies());
}(window.jQuery, window));
Seejärel testime seda ja kood on järgmine:
Testitulemused on järgmised:
Esimesed kaks sõnumit, mille saime, olid mõlemad meie enda poolt saadetud ja ka meie saime need, ning kolmanda sõnumi saatsin mina, kes avas teise brauseri, ja saime selle samuti.
Kui ma sõnumi sain, polnud see websocket, vaid tegelikult HTTP küsitlus, sest meie js teatas veast
Miks js viga teatati, räägime sellest järgmisel korral.
|