Rumah > hujung hadapan web > tutorial js > Bina papan pemuka isyarat masa nyata dengan angularjs

Bina papan pemuka isyarat masa nyata dengan angularjs

William Shakespeare
Lepaskan: 2025-02-20 12:45:11
asal
808 orang telah melayarinya

Bina panel pemantauan perkhidmatan masa nyata!

Build a Real-time SignalR Dashboard with AngularJS Panel pemantauan perkhidmatan kami akan memaparkan data sebenar dalam masa nyata. Ia akan menunjukkan kepada kita apa yang sedang berlaku pada pelayan dan microservices dalam cara yang hampir masa, tidak segerak, tidak menyekat.

Klik di sini untuk melihat contoh klien penuh.

Watch menggunakan D3.js untuk memvisualisasikan data dan menerangkan data anda dalam JavaScript! Tonton kursus ini, tonton kursus ini mempamerkan demonstrasi pelayan di sini.

Kami akan menggunakan kerangka AngularJS dan banyak carta masa nyata yang sejuk dan banyak data masa nyata untuk membina versi mudah panel pemantauan ini. Kami juga akan membina perkhidmatan kami menggunakan Perpustakaan API SignalR dan Web .NET 4.5.

mata utama

  • Gunakan AngularJS dan SignalR untuk membuat panel pemantauan masa nyata yang memaparkan aktiviti pelayan dan microservice secara asynchronously dan tidak menyekat.
  • Sediakan projek anda dengan fail teks biasa atau studio visual, dengan kebergantungan termasuk angularjs, jQuery, bootstrap, signalR, dan pelbagai perpustakaan carta seperti D3.js dan Epoch.
  • Melaksanakan Pusat SignalR di sisi pelayan untuk menguruskan penghantaran data masa nyata, memanfaatkan keupayaan .NET untuk mengendalikan permintaan tak segerak dan pemberitahuan tolak kepada pelanggan.
  • Membangunkan perkhidmatan dan pengawal AngularJS untuk memproses data yang diterima dari pusat isyarat, dan mengemas kini UI dalam masa nyata untuk mencerminkan perubahan dalam metrik prestasi pelayan.
  • Mengintegrasikan penyelesaian rajah seperti NG-EPOCH dan N3-PIE untuk mewakili data secara visual, meningkatkan interaktiviti dan penglibatan pengguna panel pemantauan.

Senibina Teknikal

pelanggan

AngularJS menguatkuasakan amalan pembangunan aplikasi yang baik dari kotak. Segala -galanya disuntik, yang bermaksud kebergantungan rendah gandingan. Di samping itu, sudut mempunyai pemisahan yang baik antara pandangan, model dan pengawal.

Angular menambah .NET di sini, membolehkan kod sisi pelayan disimpan padat, boleh diurus dan boleh diuji. Kod sisi pelayan hanya digunakan untuk memanfaatkan kelebihannya - untuk menjalankan pemprosesan berat.

sisi pelayan

Menggunakan SignalR dengan API Web .NET 4.5 sangat serupa dengan menggunakan node.js dengan socket.io dan membolehkan jenis yang tidak menyekat, push asynchronous dari pelayan ke klien langganan. SignalR menggunakan websockets di bahagian bawah, tetapi kerana ia abstrak komunikasi, ketika berjalan di dalam Angular ia jatuh kembali ke mana -mana teknologi yang disokong oleh pelayar klien. (Sebagai contoh, untuk penyemak imbas yang lebih tua, ia mungkin akan kembali ke pengundian panjang.)

Di samping itu, dengan keajaiban tag dinamik dan json.net, rangka kerja .NET menganggap JavaScript sebagai warganegara kelas pertama. Malah, menggunakan API Web dan Teknologi SignalR melalui JavaScript biasanya lebih mudah daripada melalui pelanggan NET Native kerana mereka dibina dengan JavaScript dalam fikiran.

Kandungan teras

Mula Tetapan

Semua kod AngularJS yang digunakan dalam tutorial ini boleh didapati di sini.

Saya akan merangkumi cara menciptanya menggunakan editor teks kegemaran anda dan folder biasa serta Visual Studio, bergantung kepada alat yang membuat projek.

ditetapkan dengan fail teks biasa

folder dan struktur fail adalah seperti berikut:

<code>root
    app     (Angular应用程序特定的JavaScript)
    Content (CSS等)
    Scripts (引用的JavaScript等)
    ...
    index.html</code>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Ketergantungan utama

anda perlu memuat turun fail berikut:

  • jQuery (pilih pautan "Muat turun JQuery Production Compressed 2.1.1")
  • angularjs (klik pada pilihan "muat turun" yang besar dan klik versi terkini Angular 1.3)
  • bootstrap (klik pilihan "muat turun bootstrap")
  • signalR (klik butang "muat turun zip" di sebelah kanan)
  • d3.js (klik pautan "d3.zip" di tengah -tengah halaman)
  • epoch (klik "Muat turun v0.6.0 link")
  • ng-epoch (klik butang "muat turun zip" di sebelah kanan)
  • n3-pie (klik butang "muat turun zip" di sebelah kanan)

Dalam folder skrip kami, kami perlukan:

  • jQuery-2.1.1.min.js
  • angular.min.js
  • bootstrap.min.js
  • jQuery.signalr.min.js
  • d3.min.js
  • epoch.min.js
  • pie-chart.min.js

dalam folder kandungan kami:

  • bootstrap.min.css
  • epoch.min.css

tetapan dengan Visual Studio

Jika anda fikir fail teks terlalu mudah, sangat mudah untuk ditubuhkan melalui Visual Studio.

Sediakan aplikasi web kosong dengan pergi ke fail -& gt;

Build a Real-time SignalR Dashboard with AngularJS Kemudian klik kanan pada projek itu, pergi ke pakej Urus NuGet, cari dan muat turun jQuery, AngularJS, bootstrap, D3 dan SignalR JavaScript pelanggan.

Selepas memuat turun dan memasang ini, anda harus melihatnya dalam folder skrip dan kandungan. Juga, di bawah pakej NUGET yang dipasang, anda akan melihat perkara berikut:

Akhirnya, NuGet tidak mengandungi perpustakaan carta Epoch, Ng-Epoch, dan N3, jadi anda perlu menambahnya secara manual. Hanya ikuti langkah -langkah yang terperinci di bahagian sebelumnya untuk mendapatkan perpustakaan ini.

Build a Real-time SignalR Dashboard with AngularJS mari kita tulis aplikasi kami

Sekarang kita sudah bersedia untuk menulis beberapa kod.

Pertama, mari buat fail asas index.html kami, yang akan memegang kod JavaScript sudut kami.

Terdapat beberapa perkara untuk memberi perhatian kepada. Pertama, kami menambah semua kebergantungan supaya mereka memuatkan. Kedua, kami merujuk beberapa fail baru yang belum wujud (semua fail dalam folder aplikasi). Kami akan menulis fail ini seterusnya.
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>AngularJS - SignalR - ServiceDashboard</title>
  <link rel="stylesheet" href="Content/bootstrap.min.css" />
  <link rel="stylesheet" href="Content/epoch.min.css" />

  <🎜>
  <🎜>
  <🎜>
  <🎜>

  <🎜>
  <🎜>
  <🎜>
  <🎜>

  <🎜>
  <🎜>
  <🎜>
  <🎜>

</head>
<body ng-app="angularServiceDashboard">

</body>
</html>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Mari pergi ke folder aplikasi kami dan buat fail App.js kami. Ini adalah fail yang sangat mudah.

<code>root
    app     (Angular应用程序特定的JavaScript)
    Content (CSS等)
    Scripts (引用的JavaScript等)
    ...
    index.html</code>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Fail ini melakukan beberapa perkara untuk kami. Ia menubuhkan Modul Permohonan Utama AngularServiceDashboard dan menyuntik dua rujukan luaran-ng.epoch (yang merupakan Arahan Angular Epoch.js kami) dan N3-Pie-Chart (yang merupakan struktur yang dibuat untuk perpustakaan carta sudut sudut).

Jika anda perasan, kami juga menyuntik nilai ke dalam BackendServerUrl, yang tentunya dihoskan di tempat lain, dan kami merancang untuk menggunakannya di sini.

Mari buat kelas kilang perkhidmatan yang akan mengikat ke URL pelayan. Ini akan menjadi fail perkhidmatan.js yang dirujuk dalam HTML kami, yang akan pergi ke folder aplikasi:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>AngularJS - SignalR - ServiceDashboard</title>
  <link rel="stylesheet" href="Content/bootstrap.min.css" />
  <link rel="stylesheet" href="Content/epoch.min.css" />

  <🎜>
  <🎜>
  <🎜>
  <🎜>

  <🎜>
  <🎜>
  <🎜>
  <🎜>

  <🎜>
  <🎜>
  <🎜>
  <🎜>

</head>
<body ng-app="angularServiceDashboard">

</body>
</html>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kod ini menggunakan mod langganan yang popular di sini) dan merangkumi semua komunikasi dengan isyarat aplikasi kami dengan menggunakan kilang sudut.

Kod ini mungkin kelihatan sedikit menggembirakan pada pandangan pertama, tetapi anda akan memahaminya dengan lebih baik apabila kita membina pengawal. Apa yang dilakukannya ialah mendapatkan URL dan SIGNALR Center Nama pelayan SignalR Backend. (Dalam SignalR, anda boleh menggunakan pelbagai hab di pelayan yang sama untuk menolak data.)

Di samping itu, kod ini membolehkan pelayan SignalR (terletak di beberapa kotak di tempat lain) untuk memanggil aplikasi kami melalui kaedah ON. Ia membolehkan aplikasi kami memanggil fungsi di dalam pelayan SignalR melalui kaedah Invoke.

Seterusnya, kami memerlukan pengawal kami, yang akan mengikat data kami dari perkhidmatan ke skop kami. Mari buat fail bernama Controllers.js dalam folder aplikasi kami.

'use strict';

var app = angular.module('angularServiceDashboard', ['ng.epoch','n3-pie-chart']);
app.value('backendServerUrl', 'http://sitepointsignal.cloudapp.net/');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Pengawal ini melakukan sesuatu di sini. Ia mewujudkan objek perkhidmatan sudut kami dan mengikatnya ke fungsi panggil balik supaya pelayan memanggil sesuatu dalam pengawal kami.

anda akan melihat bahawa setiap kali pelayan memanggil kami kembali, kami akan melangkah ke atas array JSON yang dikembalikan oleh pelayan. Kemudian kami mempunyai pernyataan suis untuk setiap jenis prestasi. Sekarang kita akan menetapkan RAM dan kemudian kembali dan mengisi yang lain.

Bagi arahan kami, kami sebenarnya hanya memerlukan satu carta Epoch untuk kami. Kami akan menggunakan arahan sumber terbuka yang dipanggil ng-epoch.js yang telah kami rujuk dalam fail stub index.html kami.

Kami boleh memecah semua carta ini ke dalam arahan yang berbeza, menggunakan beberapa templat dan menggunakan ui-router, tetapi demi kesederhanaan tutorial ini, kami akan meletakkan semua pandangan dalam fail index.html kami.

Sekarang mari tambahkan pandangan kami ke fail index.html. Kita boleh melakukan ini dengan menambahkan kandungan berikut di bawah tag badan:

'use strict';

app.factory('backendHubProxy', ['$rootScope', 'backendServerUrl', 
  function ($rootScope, backendServerUrl) {

    function backendFactory(serverUrl, hubName) {
      var connection = $.hubConnection(backendServerUrl);
      var proxy = connection.createHubProxy(hubName);

      connection.start().done(function () { });

      return {
        on: function (eventName, callback) {
              proxy.on(eventName, function (result) {
                $rootScope.$apply(function () {
                  if (callback) {
                    callback(result);
                  }
                 });
               });
             },
        invoke: function (methodName, callback) {
                  proxy.invoke(methodName)
                  .done(function (result) {
                    $rootScope.$apply(function () {
                      if (callback) {
                        callback(result);
                      }
                    });
                  });
                }
      };
    };

    return backendFactory;
}]);
Salin selepas log masuk
Salin selepas log masuk

Ini hanya akan membuat lokasi yang membolehkan pelayan menolak data RAM kembali. Data akan memasuki perkhidmatan kami terlebih dahulu, kemudian masukkan pengawal, dan akhirnya masukkan pandangan.

ia sepatutnya kelihatan seperti ini:

Build a Real-time SignalR Dashboard with AngularJS Sekarang mari kita tambahkan beberapa carta, yang betul -betul apa yang kita mahu lakukan. Kami akan menambah pembolehubah bernama Timestamp ke garis masa Epoch.js. Kami juga akan menambah array yang dipanggil Chartentry yang kami akan mengikat ke Arahan Epoch.ng kami.

<code>root
    app     (Angular应用程序特定的JavaScript)
    Content (CSS等)
    Scripts (引用的JavaScript等)
    ...
    index.html</code>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

maka mari memetakan data dalam pernyataan suis dan tambahkan baki item data Epoch.js yang diperlukan. Sudah tentu, kita boleh memecahkannya lebih jauh (contohnya, menggunakan lebih banyak fungsi dan penapis), tetapi demi kesederhanaan tutorial ini, kita akan tetap mudah.

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>AngularJS - SignalR - ServiceDashboard</title>
  <link rel="stylesheet" href="Content/bootstrap.min.css" />
  <link rel="stylesheet" href="Content/epoch.min.css" />

  <🎜>
  <🎜>
  <🎜>
  <🎜>

  <🎜>
  <🎜>
  <🎜>
  <🎜>

  <🎜>
  <🎜>
  <🎜>
  <🎜>

</head>
<body ng-app="angularServiceDashboard">

</body>
</html>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Pengawal kami kelihatan lebih lengkap. Kami telah menambahkan RealTimeareAfeed ke skop, yang kami akan mengikat pandangan kami melalui Arahan NG-EPOCH, dan kami juga telah menambah Areaaxes dalam skop, yang menentukan susun atur graf kawasan.

Sekarang mari tambahkan arahan ke index.html dan paparkan data nilai CPU yang masuk:

'use strict';

var app = angular.module('angularServiceDashboard', ['ng.epoch','n3-pie-chart']);
app.value('backendServerUrl', 'http://sitepointsignal.cloudapp.net/');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

carta kelas merujuk kepada skema warna D3.js, Chart-Height adalah apa yang anda fikirkan, carta-aliran adalah data yang dikembalikan dari pelayan SignalR.

dengannya, kita harus melihat carta muncul dalam masa nyata:

Build a Real-time SignalR Dashboard with AngularJS Sekarang mari kita sambungkan sejumlah besar titik data ke carta ini dan tambahkan carta lain dari kerangka N3-pie (kerana yang tidak suka carta pai!).

Untuk menambah carta pai dari rangka kerja N3-pie, tambahkan yang berikut kepada pengawal kami:

'use strict';

app.factory('backendHubProxy', ['$rootScope', 'backendServerUrl', 
  function ($rootScope, backendServerUrl) {

    function backendFactory(serverUrl, hubName) {
      var connection = $.hubConnection(backendServerUrl);
      var proxy = connection.createHubProxy(hubName);

      connection.start().done(function () { });

      return {
        on: function (eventName, callback) {
              proxy.on(eventName, function (result) {
                $rootScope.$apply(function () {
                  if (callback) {
                    callback(result);
                  }
                 });
               });
             },
        invoke: function (methodName, callback) {
                  proxy.invoke(methodName)
                  .done(function (result) {
                    $rootScope.$apply(function () {
                      if (callback) {
                        callback(result);
                      }
                    });
                  });
                }
      };
    };

    return backendFactory;
}]);
Salin selepas log masuk
Salin selepas log masuk

Sudah tentu, nilai ini akan dikemas kini oleh pelayan SignalR. Anda dapat melihat ini dalam kod lengkap pengawal kami.

kita juga perlu mengambil sedikit masa untuk memikirkan kod penuh pandangan kita.

kita harus melihat data berikut pada skrin:

Build a Real-time SignalR Dashboard with AngularJS Kami telah melihat bahawa sudut boleh menyambung ke isyarat dengan mudah - hanya masukkan titik akhir dalam perkhidmatan sudut atau kilang. Kilang AngularJS adalah mekanisme enkapsulasi yang berkomunikasi dengan isyarat. Selepas "menggabungkan", siapa tahu bahawa AngularJS dan .NET akan bekerjasama dengan sempurna?

aspek teras pelayan

Saya akan memperkenalkan beberapa kod .NET yang membolehkan komunikasi ini di belakang. (Anda boleh mencari kod sumber di sini.)

Pertama, untuk memulakan kod pelayan bangunan, anda perlu menjalankan SignalR dalam penyelesaian Visual Studio anda. Untuk melakukan ini, ikuti tutorial yang sangat baik di ASP.NET untuk menjalankan penyelesaian SignalR asas. (Ini adalah yang paling mudah.)

Selepas berlari, ubah kelas C# Hub ke yang berikut:

'use strict';

app.controller('PerformanceDataController', ['$scope', 'backendHubProxy',
  function ($scope, backendHubProxy) {
    console.log('trying to connect to service')
    var performanceDataHub = backendHubProxy(backendHubProxy.defaultServer, 'performanceHub');
    console.log('connected to service')
    $scope.currentRamNumber = 68;

    performanceDataHub.on('broadcastPerformance', function (data) {
      data.forEach(function (dataItem) {
        switch(dataItem.categoryName) {
          case 'Processor':
            break;
          case 'Memory':
            $scope.currentRamNumber = dataItem.value;
            break;
          case 'Network In':
            break;
          case 'Network Out':
            break;
          case 'Disk Read Bytes/Sec':
            break;
          case 'Disk Write Bytes/Sec':
            break;
          default:
            //default code block
            break;           
        }
      });     
    });
  }
]);
Salin selepas log masuk

Setelah menukar kelas Hub, Visual Studio akan melaporkan ralat, anda perlu menambah model prestasi (kerana JSON.NET, ia akan secara automatik ditukar kepada JSON apabila pelayan menolak):

<code>root
    app     (Angular应用程序特定的JavaScript)
    Content (CSS等)
    Scripts (引用的JavaScript等)
    ...
    index.html</code>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

metadata JSONProperty hanya memberitahu JSON.NET untuk secara automatik menukar nama harta kepada huruf kecil apabila menukar ke JSON untuk model ini. JavaScript suka huruf kecil.

Mari tambahkan kelas PerformanceEngine yang akan mendorong data prestasi sebenar kepada mana -mana klien mendengar melalui SignalR. Enjin menghantar mesej ini kepada mana -mana pelanggan mendengar melalui SignalR melalui benang latar belakang yang tidak segerak.

Oleh kerana panjangnya, anda boleh mencari kod dalam repositori GitHub kami.

Kod ini pada dasarnya menolak satu siri metrik prestasi kepada mana -mana pelanggan yang dilanggan dalam setiap lelaran. Metrik prestasi ini disuntik ke dalam pembina. Kelajuan push dari pelayan ditetapkan pada parameter pembina PollIntervalMillis.

Perhatikan bahawa ini akan berfungsi dengan baik jika anda menggunakan Owin sebagai host diri untuk menjadi tuan rumah SignalR, dan ia harus berfungsi dengan baik jika anda menggunakan benang pekerja web.

Perkara terakhir yang perlu dilakukan adalah memulakan thread latar belakang di suatu tempat di Onstart () atau kelas permulaan perkhidmatan.

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>AngularJS - SignalR - ServiceDashboard</title>
  <link rel="stylesheet" href="Content/bootstrap.min.css" />
  <link rel="stylesheet" href="Content/epoch.min.css" />

  <🎜>
  <🎜>
  <🎜>
  <🎜>

  <🎜>
  <🎜>
  <🎜>
  <🎜>

  <🎜>
  <🎜>
  <🎜>
  <🎜>

</head>
<body ng-app="angularServiceDashboard">

</body>
</html>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Dua baris kod yang memulakan thread latar belakang (seperti yang anda fikirkan) adalah di mana kita memberi gambaran prestasi dan panggil OnPerFormancemonitor ().

Sekarang, saya tahu anda mungkin berfikir saya rawak data dari pelayan, yang merupakan fakta. Tetapi untuk menolak metrik sebenar, hanya gunakan perpustakaan System.Diagnostics dan PerformanceCounter yang disediakan oleh Windows. Saya cuba mengekalkannya dengan mudah, tetapi inilah kod yang kelihatan seperti:

'use strict';

var app = angular.module('angularServiceDashboard', ['ng.epoch','n3-pie-chart']);
app.value('backendServerUrl', 'http://sitepointsignal.cloudapp.net/');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kesimpulan

Kami telah belajar bagaimana menggunakan data SignalR melalui sudut, dan kami telah menyambungkan data tersebut ke rangka kerja carta masa nyata di sisi sudut.

Demo versi akhir klien ditunjukkan di sini, dari mana anda boleh mendapatkan kod tersebut.

Build a Real-time SignalR Dashboard with AngularJS Demo versi akhir pelayan ditunjukkan di sini, dan anda boleh mendapatkan kod dari sini.

Build a Real-time SignalR Dashboard with AngularJS Saya harap anda menikmati panduan ini. Jika anda telah mencuba sesuatu yang serupa, sila beritahu kami dalam komen!

FAQ (FAQ) untuk membina panel pemantauan isyarat masa nyata dengan AngularJS

Bagaimana untuk menetapkan SignalR dalam AngularJS?

Menubuhkan SignalR dalam AngularJS melibatkan beberapa langkah. Pertama, anda perlu memasang perpustakaan SignalR menggunakan NUGET atau NPM. Selepas pemasangan, anda boleh membuat pusat SignalR baru pada pelayan. Pusat ini akan bertanggungjawab untuk menghantar dan menerima mesej. Pada pelanggan, anda perlu merujuk perpustakaan JavaScript SignalR dan membuat sambungan ke pusat anda. Anda kemudian boleh memulakan sambungan dan menentukan fungsi yang mengendalikan mesej masuk.

Bagaimana menangani kesilapan sambungan dalam SignalR?

SignalR menyediakan mekanisme terbina dalam untuk mengendalikan kesilapan sambungan. Anda boleh menggunakan fungsi .error () pada sambungan pusat untuk menentukan fungsi panggil balik yang akan dipanggil apabila ralat berlaku. Fungsi panggil balik ini boleh memaparkan mesej ralat kepada pengguna atau cuba menyambung semula ke pusat.

Bolehkah saya menggunakan SignalR dengan kerangka JavaScript yang lain?

Ya, SignalR boleh digunakan dengan mana -mana rangka kerja JavaScript yang menyokong Ajax dan WebSockets. Ini termasuk kerangka popular seperti React, Vue.js, dan Angular. Anda hanya perlu memasukkan perpustakaan JavaScript SignalR dalam projek anda dan membuat sambungan pusat seperti yang anda lakukan dalam mana -mana aplikasi JavaScript yang lain.

Bagaimana menggunakan SignalR untuk menghantar mesej dari pelayan ke klien?

Untuk menghantar mesej dari pelayan ke klien, anda boleh menggunakan harta pelanggan pusat. Harta ini menyediakan kaedah untuk menghantar mesej kepada semua pelanggan yang bersambung, pelanggan tertentu, atau kumpulan klien. Anda boleh menghubungi kaedah ini dari mana-mana bahagian kod pelayan untuk menghantar kemas kini masa nyata kepada pelanggan anda.

Bagaimana melindungi aplikasi SignalR saya?

SignalR menyediakan beberapa pilihan untuk melindungi aplikasi. Anda boleh menggunakan harta [Authorize] untuk menyekat akses ke kaedah pusat dan pusat anda. Anda juga boleh menentukan pengarang tersuai untuk hab anda menggunakan kaedah Maphubs () dalam fail Global.asax. Di samping itu, anda boleh menggunakan SSL untuk menyulitkan trafik isyarat dan mencegah penyiaran.

Bagaimana menangani pemotongan dalam isyarat?

SignalR secara automatik mengendalikan pemotongan dan percubaan untuk menyambung semula. Walau bagaimanapun, anda juga boleh mengendalikan pemotongan secara manual menggunakan fungsi .disconnected () pada sambungan pusat. Fungsi ini membolehkan anda menentukan fungsi panggil balik yang akan dipanggil apabila sambungan hilang.

Bolehkah saya menggunakan SignalR pada pelayan non.net?

SignalR adalah perpustakaan .NET yang direka untuk digunakan dengan pelayan .NET. Walau bagaimanapun, SignalR boleh digunakan pada pelayan bukan.NET dengan menggunakan perpustakaan WebSocket yang serasi. Anda perlu melaksanakan protokol SignalR pada pelayan dan mengendalikan sambungan dan logik mesej sendiri.

Bagaimana untuk menguji aplikasi SignalR saya?

Anda boleh menguji aplikasi SignalR anda menggunakan alat seperti Postman atau Fiddler dan menghantar permintaan HTTP ke pusat anda dan mengesahkan respons. Anda juga boleh menulis ujian unit untuk kaedah pusat dan fungsi pelanggan anda.

Bolehkah saya menggunakan SignalR dalam aplikasi mudah alih saya?

Ya, anda boleh menggunakan SignalR dalam aplikasi mudah alih anda. Perpustakaan JavaScript SignalR boleh digunakan dalam aplikasi mudah alih hibrid yang dibina dengan Cordova atau Ionic. Untuk aplikasi mudah alih asli, kedua -dua iOS dan Android menyediakan pelanggan SignalR.

Bagaimana untuk melanjutkan aplikasi SignalR saya?

SignalR menyediakan beberapa pilihan untuk melanjutkan permohonan. Anda boleh menggunakan Azure SignalR Service, perkhidmatan yang diuruskan sepenuhnya yang mengendalikan semua sambungan SignalR untuk anda. Anda juga boleh menggunakan backend, yang merupakan lapisan perisian untuk mengedarkan mesej antara pelbagai pelayan.

Atas ialah kandungan terperinci Bina papan pemuka isyarat masa nyata dengan angularjs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan