Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 19123|Vastaus: 1

[ASP.NET] mvc 4.0 Kuinka käyttää SignalR:ää (2)

[Kopioi linkki]
Julkaistu 5.7.2017 11.15.08 | | | |
Ensiksi loin uuden Hubs-kansion projektin alle

Luo myös uusi PositionVehicle-tiedosto kansion alle, kuten seuraavassa kuvassa näkyy:



Rakenna projekti uudelleen, ja sitten viittaamme seuraaviin kahteen js-tiedostoon näkymäsivulla



Muistiinpano!!!

"/Scripts/jquery.signalR-2.2.2.min.js"-tiedosto lisätään SignalR:n asennukseen ja se on fyysisellä levyllä

"/signalr/hubs" onSignalR generoidaan automaattisesti, jota ei löydy fyysiseltä levyltä!

Katsotaanpa SignalR:n tuottamaa js-tiedostoa seuraavasti:

/*!
* ASP.NET SignalR JavaScript Library v2.2.2
* http://signalr.net/
*
* Tekijänoikeus (c) .NET Foundation. Kaikki oikeudet pidätetään.
* Lisensoitu Apache-lisenssillä, versio 2.0. Katso License.txt projektin juuresta lisenssitietojen saamiseksi.
*
*/

<reference path="..\..\SignalR.Client.JS\Scripts\jquery-1.6.4.js" />
<reference path="jquery.signalR.js" />
(funktio ($, ikkuna, määrittelemätön) {
    <param name="$" type="jQuery" />
    "käytä tiukkaa";

    if (typeof ($.signalR) !== "funktio") {
        throw new error("SignalR: SignalR ei ole ladattu. Varmistathan, että jquery.signalR-x.js viitataan ennen ~/signalr/js.");
    }

    var signalR = $.signalR;

    function makeProxyCallback(hub, callback) {
        Return-funktio () {
            Kutsu asiakaskeskusmenetelmää
            callback.apply(hub, $.makeArray(argumentit));
        };
    }

    function registerHubProxies(instance, shouldSubscribe) {
        var key, hub, memberKey, memberValue, subscriptionMethod;

        for (avain esimerkissä) {
            if (instance.hasOwnProperty(key)) {
                hub = instanssi[avain];

                jos (!( hub.hubName)) {
                    Ei asiakaskeskus
                    jatka;
                }

                if (shouldSubscribe) {
                    Haluamme tilata hub-tapahtumat
                    subscriptionMethod = hub.on;
                } else {
                    Haluamme peruuttaa tilauksen keskustapahtumista
                    subscriptionMethod = hub.off;
                }

                Käy läpi kaikki jäsenet keskuksessa ja etsi asiakaskeskuksen toiminnot tilataksesi tai peruuttaaksesi tilauksen
                for (memberKey in hub.client) {
                    if (hub.client.hasOwnProperty(memberKey)) {
                        memberValue = hub.client[memberKey];

                        if (!$.isFunction(memberValue)) {
                            Ei asiakaskeskuksen toiminto
                            jatka;
                        }

                        subscriptionMethod.call(hub, memberKey, makeProxyCallback(hub, memberValue));
                    }
                }
            }
        }
    }

    $.hubConnection.prototype.createHubProxies = funktio () {
        var proxyes = {};
        this.starting(funktio () {
            Rekisteröi hubin välityspalvelimet tilatuiksi
            (instance, shouldSubscribe)
            registerHubProxies (välityspalvelimet, totta);

            this._registerSubscribedHubs();
        }).disconnected(funktio () {
            Poista tilaus kaikista hubin välityspalvelinmuodoista, kun "katkaisemme yhteyden".  Tämä varmistaa, ettei toiminnallisia takaisinsoittoja lisätä uudelleen.
            (instance, shouldSubscribe)
            registerHubProxies (välityspalvelimet, epätosi);
        });

        proxyes['positionVehicle'] = this.createHubProxy('positionVehicle');
        proxyes['positionVehicle'].client = { };
        proxyes['positionVehicle'].server = {
            hello: function (name) {
                return proxyes['positionVehicle'].invoke.apply(proxyes['positionVehicle'], $.merge(["Hello"], $.makeArray(arguments)));
             }
        };

        palauta proxyt;
    };

    signalR.hub = $.hubConnection("/signalr", { useDefaultPath: false });
    $.extend(signalR, signalR.hub.createHubProxies());

}(window.jQuery, window));


Sitten testataan ja koodi on seuraava:



Testitulokset ovat seuraavat:


Ensimmäiset kaksi viestiä, jotka saimme, lähetettiin molemmat meidän itsemme toimesta, ja me saimme nekin, ja kolmas viesti lähetettiin minulta, joka avasi toisen selaimen, ja saimme senkin.

Kun sain viestin, se ei ollut websocket, vaan itse asiassa HTTP-kysely, koska js ilmoitti virheen

Mitä tulee siihen, miksi js-virhe raportoitiin, puhumme siitä ensi kerralla.









Edellinen:asp.net mvc4.0 SignalR:n asennus (1)
Seuraava:Virhekoodi: 1175. Käytät turvallista päivitystilaa ja yritit päivittää ta...
 Vuokraisäntä| Julkaistu 5.7.2017 14.53.15 |
. .NET ilmestyy SignalR:lläVirhe WebSocket-kädenpuristuksen aikana
Kehitysprosessin aikana kohtasin seuraavan virheen: WebSocket-yhteys 'ws://*****':ään epäonnistui: Virhe WebSocket-kädenpuristuksen aikana: net::ERR_CONNECTION_RESET.

Syynä siihen, miksi websocketia ei voi käyttää, on se, että web.config-tiedostoa ei ole konfiguroitu. SignalR:n toimiminen oikein vaatii seuraavan konfiguraatioalkion lisäämisen system.web-solmun alle:



targetFramework asetettu 4.5:een
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com