Node.js'da Relay Karma Bağlan ions WebSockets ile çalışmaya başlama

Bu hızlı başlangıçta, Azure Relay'de Karma Bağlan ions WebSockets kullanarak ileti gönderip alan Node.js gönderen ve alıcı uygulamaları oluşturacaksınız. 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

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ü.

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-ws komutunu çalıştırın.

İleti almak için bazı kodlar yazma

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

    const WebSocket = require('hyco-ws');
    
  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:

    var wss = WebSocket.createRelayedServer(
    {
        server : WebSocket.createRelayListenUri(ns, path),
        token: WebSocket.createRelayToken('http://' + ns, keyrule, key)
    }, 
    function (ws) {
        console.log('connection accepted');
        ws.onmessage = function (event) {
            console.log(event.data);
        };
        ws.on('close', function () {
            console.log('connection closed');
        });       
    });
    
    console.log('listening');
    
    wss.on('error', function(err) {
        console.log('error' + err);
    });
    

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

    const WebSocket = require('hyco-ws');
    
    const ns = "{RelayNamespace}";
    const path = "{HybridConnectionName}";
    const keyrule = "{SASKeyName}";
    const key = "{SASKeyValue}";
    
    var wss = WebSocket.createRelayedServer(
        {
            server : WebSocket.createRelayListenUri(ns, path),
            token: WebSocket.createRelayToken('http://' + ns, keyrule, key)
        }, 
        function (ws) {
            console.log('connection accepted');
            ws.onmessage = function (event) {
                console.log(event.data);
            };
            ws.on('close', function () {
                console.log('connection closed');
            });       
    });
    
    console.log('listening');
    
    wss.on('error', function(err) {
        console.log('error' + err);
    });
    

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

Geçiş hizmetinden ileti göndermek için bir Node.js konsol uygulaması yazın.

Node.js uygulaması oluşturma

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-ws komutunu çalıştırın.

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

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

    const WebSocket = require('hyco-ws');
    const readline = require('readline')
        .createInterface({
            input: process.stdin,
            output: process.stdout
        });;
    
  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:

    WebSocket.relayedConnect(
        WebSocket.createRelaySendUri(ns, path),
        WebSocket.createRelayToken('http://'+ns, keyrule, key),
        function (wss) {
            readline.on('line', (input) => {
                wss.send(input, null);
            });
    
            console.log('Started client interval.');
            wss.on('close', function () {
                console.log('stopping client interval');
                process.exit();
            });
        }
    );
    

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

    const WebSocket = require('hyco-ws');
    const readline = require('readline')
        .createInterface({
            input: process.stdin,
            output: process.stdout
        });;
    
    const ns = "{RelayNamespace}";
    const path = "{HybridConnectionName}";
    const keyrule = "{SASKeyName}";
    const key = "{SASKeyValue}";
    
    WebSocket.relayedConnect(
        WebSocket.createRelaySendUri(ns, path),
        WebSocket.createRelayToken('http://'+ns, keyrule, key),
        function (wss) {
            readline.on('line', (input) => {
                wss.send(input, null);
            });
    
            console.log('Started client interval.');
            wss.on('close', function () {
                console.log('stopping client interval');
                process.exit();
            });
        }
    );
    

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.

    Konsol pencereleri hem sunucu hem de istemci uygulamalarını test etme.

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 WebSockets 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 HTTP kullanmayı da destekler. Http'yi Azure Relay Karma Bağlan ions ile kullanmayı öğrenmek için http Node.js hızlı başlangıcına bakın.

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.