Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 19123|Válasz: 1

[ASP.NET] mvc 4.0 Hogyan használják a SignalR-t (2)

[Linket másol]
Közzétéve 2017. 07. 05. 11:15:08 | | | |
Először egy új Hubs mappát hoztam létre a projekt alatt

Emellett hozz létre egy új PositionVehicle fájlt a mappa alatt, ahogy az alábbi ábrán látható:



Újraépítjük a projektet, majd a következő két js fájlra hivatkozunk a megtekintési oldalon



Jegyzet!!!

A "/Scripts/jquery.signalR-2.2.2.min.js" fájl hozzáadódik a SignalR telepítéséhez, és a fizikai lemezen található

"/signalr/hubs" azA SignalR automatikusan generálódik, ami nem található meg a fizikai lemezen!

Nézzük meg a SignalR által generált js fájlt a következőkép:

/*!
* ASP.NET SignalR JavaScript Library v2.2.2
* http://signalr.net/
*
* Szerzői jog (c) .NET Foundation. Minden jog fenntartva.
* Az Apache licenc alatt, 2.0 verzió alá van engedéllyel. A licencinformációért lásd License.txt a projekt gyökér részén.
*
*/

<reference path="..\..\SignalR.Client.JS\Scripts\jquery-1.6.4.js" />
<referencia út="jquery.signalR.js" />
(függvény ($, ablak, meghatározatlan) {
    <param name="$" type="jQuery" />
    "használj szigorúan";

    if (typeof ($.signalR) !== "function") {
        throw new Error("SignalR: SignalR nincs betöltve. Kérjük, jquery.signalR-x.js hivatkozva legyen a ~/signalr/js.");
    }

    var signalR = $.signalR;

    function makeProxyCallback(hub, callback) {
        Return függvény () {
            Hívjuk a kliens hub metódust.
            callback.apply(hub, $.makeArray(arguments));
        };
    }

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

        for (kulcs a instance) {
            if (instance.hasOwnProperty(key)) {
                hub = instance[key];

                ha (!( hub.hubName)) {
                    Nem kliensközpont
                    folytasd;
                }

                if (shouldSubscribe) {
                    Szeretnénk feliratkozni a központi eseményekre
                    subscriptionMethod = hub.on;
                } más {
                    Le akarunk mondani a központi eseményekről
                    subscriptionMethod = hub.off;
                }

                Körbefut az összes tag végig a hubon, és keress kliens hub funkciókat az előfizetéshez vagy lemondáshoz
                for (memberKey in hub.client) {
                    if (hub.client.hasOwnProperty(memberKey)) {
                        memberValue = hub.client[memberKey];

                        if (!$.isFunction(memberValue)) {
                            Nem kliens hub funkció
                            folytasd;
                        }

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

    $.hubConnection.prototype.createHubProxies = function () {
        var proxyes = {};
        this.starting(function () {
            Regisztráld a hub proxy-kat előfizetőként
            (instance, shouldSubscribe)
            registerHubProxies (proxyk, true);

            this._registerSubscribedHubs();
        }).disconnected(function () {
            Töröld le az összes hub proxyt, amikor "leszakadunk".  Ez azért van, hogy ne adjunk újra funkcionális visszahívásokat.
            (instance, shouldSubscribe)
            registerHubProxies (proxyk, hamis);
        });

        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)));
             }
        };

        visszaküldött proxyk;
    };

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

}(window.jQuery, window));


Aztán próbáljuk ki, és a kód a következő:



A teszteredmények a következők:


Az első két üzenetet mindkettő mi küldtük, és mi is megkaptuk, a harmadik üzenetet pedig én küldtem, aki megnyitottam egy másik böngészőt, és mi is megkaptuk.

Amikor megkaptam az üzenetet, nem websocket volt, hanem egy HTTP felmérés, mert a js-ünk hibát jelentett

Ami azt illeti, miért jelentették a js hibát, majd legközelebb beszélünk róla.









Előző:asp.net mvc4.0 SignalR telepítése (1)
Következő:Hibakód: 1175. Biztonságos frissítési módot használsz, és próbáltál frissíteni egy ta...
 Háziúr| Közzétéve 2017. 07. 05. 14:53:15 |
. A .NET SignalR-rel jelenik megHiba WebSocket kézfogás közben
A fejlesztés során a következő hibával találkoztam: WebSocket kapcsolat a 'ws://*****'-hez meghibásodott: Hiba WebSocket kézfogás közben: net::ERR_CONNECTION_RESET.

Azért nem használható a websocket, mert a web.config fájl nincs konfigurálva. A SignalR helyes futtatásához a következő konfigurációs elem hozzáadása szükséges a system.web csomópont alá:



targetFramework beállítása 4.5
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com