Mulai menggunakan permintaan HTTP Koneksi Hibrid Relay di Node.js
Dalam mulai cepat ini, Anda membuat aplikasi pengirim dan penerima Node.js yang mengirimkan dan menerima pesan dengan menggunakan protokol HTTP. Aplikasi ini menggunakan fitur Relay Hybrid Connections dari Azure Relay. Untuk mempelajari tentang Azure Relay secara umum, lihat Azure Relay.
Dalam mulai cepat ini, Anda melakukan langkah-langkah berikut:
- Buat namespace Relay dengan menggunakan portal Azure.
- Buat koneksi hibrida di namespace tersebut dengan menggunakan portal Azure.
- Tulis aplikasi konsol server (listener) untuk menerima pesan.
- Tulis aplikasi konsol klien (pengirim) untuk mengirim pesan.
- Jalankan aplikasi.
Prasyarat
Buat kumpulan nama menggunakan portal Microsoft Azure
Masuk ke portal Azure.
Pilih Semua layanan di menu sebelah kiri. Pilih Integrasi, cari Relay, gerakkan mouse di atas Relay, lalu pilih Buat.
Pada halaman Buat namespace layanan, ikuti langkah-langkah berikut:
Pilih langganan Azure untuk membuat namespace.
Untuk Grup sumber daya, pilih grup sumber daya yang ada tempat namespace akan aktif, atau buat grup baru.
Masukkan nama untuk namespace Relay.
Pilih wilayah tempat namespace layanan Anda harus dihosting.
Pilih Tinjau + buat di bagian bawah halaman.
Pada halaman Tinjau + buat, pilih Buat.
Setelah beberapa menit, Anda akan melihat halaman Relay untuk namespace.
Mendapatkan info masuk manajemen
Pada halaman Relay , pilih Kebijakan akses bersama di menu sebelah kiri. `
Pada halaman Kebijakan akses bersama, pilih RootManageSharedAccessKey.
Di bawah Kebijakan SAS: RootManageSharedAccessKey, pilih tombol Salin di sebelah String Koneksi Primer. Tindakan ini menyalin string koneksi ke clipboard untuk digunakan nanti. Tempelkan nilai ini ke Notepad atau beberapa lokasi sementara lainnya.
Ulangi langkah sebelumnya untuk menyalin dan menempelkan nilai Kunci primer ke lokasi sementara untuk digunakan nanti.
Buat koneksi hibrid menggunakan portal Microsoft Azure
Pada halaman Relay untuk namespace Anda, ikuti langkah-langkah ini untuk membuat koneksi hibrid.
Di menu sebelah kiri, Di bawah Entitas, pilih Koneksi Hibrid, lalu pilih + Koneksi Hibrid.
Pada halaman Buat Koneksi Hibrid, masukkan nama untuk koneksi hibrid, dan pilih Buat.
Membuat aplikasi server (pendengar)
Untuk mendengarkan dan menerima pesan dari Relay, tulis aplikasi konsol Node.js.
Membuat aplikasi Node.js baru
Buat file JavaScript baru yang disebut listener.js
.
Menambahkan paket Relay
Jalankan npm install hyco-https
dari perintah Simpul di folder proyek Anda.
Tulis beberapa kode untuk menangani permintaan
Tambahkan konstanta berikut ke bagian atas file
listener.js
.const https = require('hyco-https');
Tambahkan konstanta berikut ke file
listener.js
untuk detail koneksi hibrid. Ganti tempat penampung dalam tanda kurung siku dengan nilai yang Anda peroleh saat membuat koneksi hibrid.const ns
- Namespace layanan Relay. Pastikan untuk menggunakan nama namespace layanan yang sepenuhnya memenuhi syarat; misalnya,{namespace}.servicebus.windows.net
.const path
- Nama koneksi hibrid.const keyrule
- Nama kunci Kebijakan Akses Bersama Anda, yang secaraRootManageSharedAccessKey
default.const key
- Kunci utama namespace layanan yang Anda simpan sebelumnya.
Tambahkan kode berikut ke file
listener.js
. :Anda melihat bahwa kode tidak jauh berbeda dari contoh server HTTP sederhana yang dapat Anda temukan dalam tutorial pemula Node.js, yang pengecualian menggunakan
createRelayedServer
alih-alih fungsi umumcreateServer
.var uri = https.createRelayListenUri(ns, path); var server = https.createRelayedServer( { server : uri, token : () => https.createRelayToken(uri, keyrule, key) }, (req, res) => { console.log('request accepted: ' + req.method + ' on ' + req.url); res.setHeader('Content-Type', 'text/html'); res.end('<html><head><title>Hey!</title></head><body>Relayed Node.js Server!</body></html>'); }); server.listen( (err) => { if (err) { return console.log('something bad happened', err) } console.log(`server is listening on ${port}`) }); server.on('error', (err) => { console.log('error: ' + err); });
Berikut tampilan file listener.js Anda:
const https = require('hyco-https'); const ns = "{RelayNamespace}"; const path = "{HybridConnectionName}"; const keyrule = "{SASKeyName}"; const key = "{SASKeyValue}"; var uri = https.createRelayListenUri(ns, path); var server = https.createRelayedServer( { server : uri, token : () => https.createRelayToken(uri, keyrule, key) }, (req, res) => { console.log('request accepted: ' + req.method + ' on ' + req.url); res.setHeader('Content-Type', 'text/html'); res.end('<html><head><title>Hey!</title></head><body>Relayed Node.js Server!</body></html>'); }); server.listen( (err) => { if (err) { return console.log('something bad happened', err) } console.log(`server is listening on ${port}`) }); server.on('error', (err) => { console.log('error: ' + err); });
Membuat aplikasi klien (pengirim)
Untuk mengirim pesan ke Relay, Anda dapat menggunakan klien HTTP apa pun atau menulis aplikasi konsol Node.js.
Membuat aplikasi Node.js baru
Jika telah menonaktifkan opsi "Memerlukan Otorisasi Klien" saat membuat Relay, Anda dapat mengirim permintaan ke URL Koneksi Hibrid dengan browser apa pun. Untuk mengakses titik akhir yang dilindungi, Anda perlu membuat dan meneruskan token di header ServiceBusAuthorization
, yang ditampilkan di sini.
Buat file JavaScript baru yang disebut sender.js
.
Menambahkan paket Pengelola Paket Simpul Relay
Jalankan npm install hyco-https
dari perintah Simpul di folder proyek Anda. Paket ini juga mengimpor paket https
reguler. Untuk sisi klien, perbedaan utama adalah bahwa paket menyediakan fungsi untuk membangun URI dan token Relay.
Menulis kode untuk mengirim pesan
Tambahkan
constants
berikut ini ke bagian atas filesender.js
.const https = require('hyco-https');
Tambahkan konstanta berikut ke file
sender.js
untuk detail koneksi hibrid. Ganti tempat penampung dalam tanda kurung siku dengan nilai yang Anda peroleh saat membuat koneksi hibrid.const ns
- Namespace layanan Relay. Pastikan untuk menggunakan nama namespace layanan yang sepenuhnya memenuhi syarat; misalnya,{namespace}.servicebus.windows.net
.const path
- Nama koneksi hibrid.const keyrule
- Nama kunci Kebijakan Akses Bersama Anda, yang secaraRootManageSharedAccessKey
default.const key
- Kunci utama namespace layanan yang Anda simpan sebelumnya.
Tambahkan kode berikut ke file
sender.js
. Anda melihat bahwa kode tidak berbeda secara signifikan dari penggunaan reguler klien Node.js HTTPS; itu hanya menambahkan header otorisasi.https.get({ hostname : ns, path : (!path || path.length == 0 || path[0] !== '/'?'/':'') + path, port : 443, headers : { 'ServiceBusAuthorization' : https.createRelayToken(https.createRelayHttpsUri(ns, path), keyrule, key) } }, (res) => { let error; if (res.statusCode !== 200) { console.error('Request Failed.\n Status Code: ${statusCode}'); res.resume(); } else { res.setEncoding('utf8'); res.on('data', (chunk) => { console.log(`BODY: ${chunk}`); }); res.on('end', () => { console.log('No more data in response.'); }); }; }).on('error', (e) => { console.error(`Got error: ${e.message}`); });
Berikut tampilan file sender.js Anda:
const https = require('hyco-https'); const ns = "{RelayNamespace}"; const path = "{HybridConnectionName}"; const keyrule = "{SASKeyName}"; const key = "{SASKeyValue}"; https.get({ hostname : ns, path : (!path || path.length == 0 || path[0] !== '/'?'/':'') + path, port : 443, headers : { 'ServiceBusAuthorization' : https.createRelayToken(https.createRelayHttpsUri(ns, path), keyrule, key) } }, (res) => { let error; if (res.statusCode !== 200) { console.error('Request Failed.\n Status Code: ${statusCode}'); res.resume(); } else { res.setEncoding('utf8'); res.on('data', (chunk) => { console.log(`BODY: ${chunk}`); }); res.on('end', () => { console.log('No more data in response.'); }); }; }).on('error', (e) => { console.error(`Got error: ${e.message}`); });
Catatan
Kode sampel dalam artikel ini menggunakan string koneksi untuk mengautentikasi ke namespace Azure Relay agar tutorial tetap sederhana. Kami menyarankan agar Anda menggunakan autentikasi ID Microsoft Entra di lingkungan produksi, daripada menggunakan string koneksi atau tanda tangan akses bersama, yang dapat lebih mudah disusupi. Untuk informasi terperinci dan kode sampel untuk menggunakan autentikasi ID Microsoft Entra, lihat Mengautentikasi dan mengotorisasi aplikasi dengan ID Microsoft Entra untuk mengakses entitas Azure Relay dan Mengautentikasi identitas terkelola dengan ID Microsoft Entra untuk mengakses sumber daya Azure Relay.
Menjalankan aplikasi
- Jalankan aplikasi server: dari jenis perintah Node.js
node listener.js
. - Jalankan aplikasi klien: dari jenis perintah Node.js
node sender.js
dan masukkan beberapa teks. - Pastikan bahwa aplikasi konsol server mengeluarkan teks yang dimasukkan dalam aplikasi klien.
Selamat, Anda telah membuat aplikasi Hybrid Connections end-to-end menggunakan Node.js!
Langkah berikutnya
Dalam mulai cepat ini, Anda membuat aplikasi klien dan server Node.js yang menggunakan HTTP untuk mengirimkan dan menerima pesan. Fitur Koneksi Hibrid Azure Relay juga mendukung penggunaan WebSocket untuk mengirim dan menerima pesan. Untuk mempelajari cara menggunakan WebSocket dengan Sambungan Hibrid Azure Relay, lihat mulai cepat WebSocket.
Dalam mulai cepat ini, Anda menggunakan Node.js untuk membuat aplikasi klien dan server. Untuk mempelajari cara menulis aplikasi klien dan server menggunakan .NET Framework, lihat panduan mulai cepat .NET WebSockets atau panduan mulai cepat .NET HTTP.