Node.js'da Geçiş Karma Bağlan ions HTTP isteklerini kullanmaya başlama

Bu hızlı başlangıçta, HTTP protokollerini kullanarak ileti gönderip alan Node.js gönderen ve alıcı uygulamaları oluşturacaksınız. Uygulamalar, Azure Relay'in Karma Bağlan ions özelliğini kullanır. Genel olarak Azure Relay hakkında bilgi edinmek için bkz . Azure Relay.

Bu hızlı başlangıçta aşağıdaki adımları uygulayacaksınız:

  1. Azure portalını kullanarak Geçiş ad alanı oluşturma.
  2. Azure portalını kullanarak o ad alanında karma bağlantı oluşturma.
  3. İleti almak için bir sunucu (dinleyici) konsol uygulaması yazma.
  4. İleti göndermek için bir istemci (gönderen) konsol uygulaması yazma.
  5. Uygulamaları çalıştırın.

Önkoşullar

Azure portalı kullanılarak ad alanı oluşturma

  1. Azure Portal’ında oturum açın.

  2. Soldaki menüden Tüm hizmetler'i seçin. Tümleştirme'yi seçin, Geçişler'i arayın, fareyi Geçişler'in üzerine getirin ve oluştur'u seçin.

    Geçişler -> Oluştur düğmesinin seçimini gösteren ekran görüntüsü.

  3. Ad alanı oluştur sayfasında şu adımları izleyin:

    1. Ad alanının oluşturulacağı bir Azure aboneliği seçin.

    2. Kaynak grubu için, ad alanının yerleştirileceği mevcut bir kaynak grubunu seçin veya yeni bir tane oluşturun.

    3. Geçiş ad alanı için bir ad girin.

    4. Ad alanınızın barındırılacağı bölgeyi seçin.

    5. Sayfanın alt kısmındaki Gözden geçir ve oluştur'u seçin.

      Ad alanı oluştur sayfasını gösteren ekran görüntüsü.

    6. Gözden Geçir + oluştur sayfasında Oluştur'u seçin.

    7. Birkaç dakika sonra ad alanının Geçiş sayfasını görürsünüz.

      Geçiş ad alanının giriş sayfasını gösteren ekran görüntüsü.

Yönetim kimlik bilgilerini alma

  1. Geçiş sayfasında, soldaki menüden Paylaşılan erişim ilkeleri'ni seçin. `

  2. Paylaşılan erişim ilkeleri sayfasında RootManageSharedAccessKey'i seçin.

  3. SAS İlkesi: RootManageSharedAccessKey altında Birincil Bağlan ion Dizesi'nin yanındaki Kopyala düğmesini seçin. Bu eylem, bağlantı dizesi daha sonra kullanmak üzere panonuza kopyalar. Bu değeri Not Defteri veya başka bir geçici konuma yapıştırın.

  4. Birincil anahtar değerini daha sonra kullanmak üzere kopyalayıp geçici bir konuma yapıştırarak önceki adımı tekrarlayın.

    Geçiş ad alanı için bağlantı bilgilerini gösteren ekran görüntüsü.

Azure portalını kullanarak karma bağlantı oluşturma

Ad alanınızın Geçiş sayfasında, karma bağlantı oluşturmak için bu adımları izleyin.

  1. Soldaki menüde Varlıklar'ın altında Karma Bağlan ions'ı ve ardından + Karma Bağlan ion'ı seçin.

    Karma Bağlan ions sayfasını gösteren ekran görüntüsü.

  2. Karma Bağlan oluşturma sayfasında karma bağlantı için bir ad girin ve Oluştur'u seçin.

    Karma Bağlan oluşturma sayfasını gösteren ekran görüntüsü.

Sunucu uygulaması (dinleyici) oluşturma

Geçiş hizmetinden ileti dinleyip almak için bir Node.js konsol uygulaması yazın.

Node.js uygulaması oluşturma

listener.js adlı yeni bir JavaScript dosyası oluşturun.

Geçiş paketini ekleme

Proje klasörünüzdeki bir Düğüm komut isteminden npm install hyco-https komutunu çalıştırın.

İstekleri işlemeye yönelik kod yazın

  1. Aşağıdaki sabiti listener.js dosyasının başına ekleyin.

    const https = require('hyco-https');
    
  2. Karma bağlantı ayrıntıları için şu sabitleri listener.js dosyasına ekleyin. Köşeli ayraçlar içindeki yer tutucuları, karma bağlantıyı oluştururken aldığınız değerlerle değiştirin.

    • const ns - Geçiş ad alanı. Tam ad alanı adını kullandığınızdan emin olun: örneğin, {namespace}.servicebus.windows.net.
    • const path - Karma bağlantının adı.
    • const keyrule - Varsayılan olarak Paylaşılan Erişim İlkeleri anahtarınızın RootManageSharedAccessKey adı.
    • const key - Daha önce kaydettiğiniz ad alanının birincil anahtarı.
  3. listener.js dosyasına aşağıdaki kodu ekleyin. :

    Kodun Node.js başlangıç öğreticilerinde bulabileceğiniz herhangi bir basit HTTP sunucusu örneğinden çok farklı olmadığını fark edeceksiniz. Bu, normal createServer işlev yerine öğesini createRelayedServer kullanma özel durumu.

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

    listener.js dosyanız şöyle görünmelidir:

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

İstemci uygulaması (gönderici) oluşturma

Relay hizmetine ileti göndermek için herhangi bir HTTP istemcisini kullanabilir veya bir Node.js konsol uygulaması yazabilirsiniz.

Node.js uygulaması oluşturma

Relay’i oluştururken "İstemci Kimlik Doğrulaması Gerektirir" seçeneğini devre dışı bıraktıysanız dilediğiniz tarayıcıyla Karma Bağlantılar URL’sine istek gönderebilirsiniz. Korumalı uç noktalara erişmek için burada gösterilen ServiceBusAuthorization üst bilgisinde bir belirteç oluşturup geçirmeniz gerekir.

Başlamak için sender.js adlı yeni bir JavaScript dosyası oluşturun.

Geçiş Düğümü Paket Yöneticisi paketini ekleme

Proje klasörünüzdeki bir Düğüm komut isteminden npm install hyco-https komutunu çalıştırın. Bu paket normal https paketini de içeri aktarır. İstemci tarafı için en temel fark, paketin Relay URI’leri ve belirteçleri oluşturmaya yönelik işlevler sağlamasıdır.

İleti göndermek için bazı kodlar yazma

  1. Aşağıdaki constants öğesini sender.js dosyasının başına ekleyin.

    const https = require('hyco-https');
    
  2. Karma bağlantı ayrıntıları için şu sabitleri sender.js dosyasına ekleyin. Köşeli ayraçlar içindeki yer tutucuları, karma bağlantıyı oluştururken aldığınız değerlerle değiştirin.

    • const ns - Geçiş ad alanı. Tam ad alanı adını kullandığınızdan emin olun: örneğin, {namespace}.servicebus.windows.net.
    • const path - Karma bağlantının adı.
    • const keyrule - Varsayılan olarak Paylaşılan Erişim İlkeleri anahtarınızın RootManageSharedAccessKey adı.
    • const key - Daha önce kaydettiğiniz ad alanının birincil anahtarı.
  3. sender.js dosyasına aşağıdaki kodu ekleyin. Kodun Node.js HTTPS istemcisinin normal kullanımından önemli ölçüde farklı olmadığını fark edeceksiniz; yalnızca yetkilendirme üst bilgisini ekler.

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

    sender.js dosyanız şöyle görünmelidir:

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

Uygulamaları çalıştırma

  1. Sunucu uygulamasını çalıştırın: Node.js komut istemine node listener.js yazın.
  2. İstemci uygulamasını çalıştırın: Node.js komut istemine node sender.js yazın ve bazı metinler girin.
  3. Sunucu uygulama konsolunun istemci uygulamasına girilen metni çıkardığından emin olun.

Tebrikler, Node.js kullanarak uçtan uca bir Karma Bağlantılar uygulaması oluşturdunuz!

Sonraki adımlar

Bu hızlı başlangıçta, ileti göndermek ve almak için HTTP kullanan Node.js istemci ve sunucu uygulamaları oluşturdunuz. Azure Relay'in Karma Bağlan ions özelliği, ileti göndermek ve almak için WebSockets kullanmayı da destekler. Azure Relay Karma Bağlan ions ile WebSockets'i kullanmayı öğrenmek için bkz. WebSockets hızlı başlangıcı.

Bu hızlı başlangıçta istemci ve sunucu uygulamaları oluşturmak için Node.js kullandınız. .NET Framework kullanarak istemci ve sunucu uygulamaları yazmayı öğrenmek için .NET WebSockets hızlı başlangıcına veya .NET HTTP hızlı başlangıcına bakın.