Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 19123|Atbildi: 1

[ASP.NET] mvc 4.0 Kā lietot SignalR (2)

[Kopēt saiti]
Publicēts 05.07.2017 11:15:08 | | | |
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.









Iepriekšējo:asp.net mvc4.0 SignalR instalēšana (1)
Nākamo:Kļūdas kods: 1175. Jūs izmantojat drošo atjaunināšanas režīmu un mēģinājāt atjaunināt ta...
 Saimnieks| Publicēts 05.07.2017 14:53:15 |
. .NET parādās, izmantojot SignalRKļūda WebSocket rokasspiediena laikā
Izstrādes procesa laikā es saskāros ar šādu kļūdu: WebSocket savienojums ar 'ws://*****' neizdevās: Kļūda WebSocket rokasspiediena laikā: net::ERR_CONNECTION_RESET.

Iemesls, kāpēc websocket nevar izmantot, ir tāds, ka fails web.config nav konfigurēts. Lai SignalR darbotos pareizi, ir jāpievieno šāds konfigurācijas vienums zem system.web mezgla:



mērķa ietvars noteikts uz 4.5
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com