Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 19123|Jawab: 1

[ASP.NET] mvc 4.0 Cara menggunakan SignalR (2)

[Salin tautan]
Diposting pada 05/07/2017 11.15.08 | | | |
Pertama, saya membuat folder Hubs baru di bawah proyek

Juga, buat file PositionVehicle baru di bawah folder, seperti yang ditunjukkan pada gambar berikut:



Bangun kembali proyek, lalu kita mereferensikan dua file js berikut di halaman tampilan



Nota!!!

File "/Scripts/jquery.signalR-2.2.2.min.js" ditambahkan ke penginstalan SignalR dan ada di disk fisik

"/signalr/hubs" adalahSignalR dibuat secara otomatis, yang tidak dapat ditemukan di disk fisik!

Mari kita lihat file js yang dihasilkan oleh SignalR, sebagai berikut:

/*!
* ASP.NET Perpustakaan JavaScript SignalR v2.2.2
* http://signalr.net/
*
* Hak Cipta (c) Yayasan .NET. Semua hak dilindungi undang-undang.
* Berlisensi di bawah Lisensi Apache, Versi 2.0. Lihat License.txt di root proyek untuk informasi lisensi.
*
*/

<referensi path="..\..\SignalR.Client.JS\Scripts\jquery-1.6.4.js" />
<jalur referensi="jquery.signalR.js" />
(fungsi ($, jendela, tidak ditentukan) {
    <param name="$" type="jQuery" />
    "gunakan ketat";

    if (typeof ($.signalR) !== "function") {
        lempar Error baru("SignalR: SignalR tidak dimuat. Harap pastikan jquery.signalR-x.js direferensikan sebelum ~/signalr/js.");
    }

    var signalR = $.signalR;

    function makeProxyCallback(hub, callback) {
        fungsi pengembalian () {
            Panggil metode hub klien
            callback.apply(hub, $.makeArray(argumen));
        };
    }

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

        for (kunci dalam contoh) {
            if (instance.hasOwnProperty(kunci)) {
                hub = instans[kunci];

                jika (!( hub.hubName)) {
                    Bukan hub klien
                    melanjutkan;
                }

                if (shouldSubscribe) {
                    Kami ingin berlangganan acara hub
                    subscriptionMethod = hub.on;
                } else {
                    Kami ingin berhenti berlangganan dari acara hub
                    subscriptionMethod = hub.off;
                }

                Ulangi semua anggota di hub dan temukan fungsi hub klien untuk berlangganan/berhenti berlangganan
                for (memberKey di hub.client) {
                    if (hub.client.hasOwnProperty(memberKey)) {
                        memberValue = hub.client[memberKey];

                        if (!$.isFunction(memberValue)) {
                            Bukan fungsi hub klien
                            melanjutkan;
                        }

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

    $.hubConnection.prototype.createHubProxies = fungsi () {
        proksi var = {};
        this.starting(fungsi () {
            Mendaftarkan proxy hub sebagai berlangganan
            (contoh, shouldSubscribe)
            registerHubProxies(proxy, true);

            this._registerSubscribedHubs();
        }).disconnected(fungsi () {
            Berhenti berlangganan semua proxy hub saat kita "memutuskan sambungan".  Ini untuk memastikan bahwa kami tidak menambahkan ulang panggilan balik fungsional.
            (contoh, shouldSubscribe)
            registerHubProxies(proxy, false);
        });

        proxies['positionVehicle'] = this.createHubProxy('positionVehicle');
        proxies['positionVehicle'].client = { };
        proxies['positionVehicle'].server = {
            halo: fungsi (nama) {
                return proxies['positionVehicle'].invoke.apply(proxies['positionVehicle'], $.merge(["Hello"], $.makeArray(arguments)));
             }
        };

        kembali proxy;
    };

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

}(window.jQuery, window));


Kemudian, mari kita uji dan kodenya adalah sebagai berikut:



Hasil tes adalah sebagai berikut:


Dua pesan pertama yang kami terima keduanya dikirim sendiri, dan kami juga menerimanya, dan pesan ketiga dikirim oleh saya yang membuka browser lain, dan kami juga menerimanya.

Ketika saya menerima pesan, itu bukan websocket, tetapi sebenarnya jajak pendapat HTTP, karena js kami melaporkan kesalahan

Adapun mengapa kesalahan js dilaporkan, kita akan membicarakannya lain kali.









Mantan:asp.net mvc4.0 Menginstal SignalR (1)
Depan:Kode Kesalahan: 1175. Anda menggunakan mode pembaruan aman dan Anda mencoba memperbarui ta...
 Tuan tanah| Diposting pada 05/07/2017 14.53.15 |
. .NET muncul menggunakan SignalRKesalahan selama jabat tangan WebSocket
Selama proses pengembangan, saya mengalami kesalahan berikut: Koneksi WebSocket ke 'ws://*****' gagal: Kesalahan selama jabat tangan WebSocket: net::ERR_CONNECTION_RESET.

Alasan mengapa websocket tidak dapat digunakan adalah karena file web.config tidak dikonfigurasi. SignalR agar berjalan dengan benar memerlukan penambahan item konfigurasi berikut di bawah simpul system.web:



targetFramework diatur ke 4.5
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com