See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 19123|Vastuse: 1

[ASP.NET] mvc 4.0 Kuidas kasutada SignalR-i (2)

[Kopeeri link]
Postitatud 05.07.2017 11:15:08 | | | |
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.









Eelmine:asp.net mvc4.0 SignalR paigaldamine (1)
Järgmine:Veakood: 1175. Sa kasutad turvalist uuendusrežiimi ja proovisid uuendada ta...
 Üürileandja| Postitatud 05.07.2017 14:53:15 |
. .NET ilmub SignalR-i abilViga WebSocketi käepigistuse ajal
Arendusprotsessi käigus kohtasin järgmist viga: WebSocketi ühendus 'ws://*****'-ga ebaõnnestus: viga WebSocketi käepigistuse ajal: net::ERR_CONNECTION_RESET.

Põhjus, miks websocketi ei saa kasutada, on see, et web.config fail pole seadistatud. SignalR-i korrektseks tööks tuleb lisada system.web sõlme alla järgmine konfiguratsioonielement:



targetFramework seatud väärtusele 4.5
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com