Začínáme s požadavky HTTP Relay Hybrid Connections v NodeGet started with Relay Hybrid Connections HTTP requests in Node

V tomto rychlém startu vytvoříte aplikace pro odesílatele a přijímače v Node. js, které odesílají a přijímají zprávy pomocí protokolu HTTP.In this quickstart, you create Node.js sender and receiver applications that send and receive messages by using the HTTP protocol. Aplikace používají Hybrid Connections funkce Azure Relay.The applications use Hybrid Connections feature of Azure Relay. Další informace o Azure Relay obecně najdete v tématu Azure Relay.To learn about Azure Relay in general, see Azure Relay.

V tomto rychlém startu proveďte následující kroky:In this quickstart, you take the following steps:

  1. Pomocí webu Azure Portal vytvoříte obor názvů služby Relay.Create a Relay namespace by using the Azure portal.
  2. Pomocí webu Azure Portal vytvoříte v tomto oboru názvů hybridní připojení.Create a hybrid connection in that namespace by using the Azure portal.
  3. Napíšeme konzolovou aplikaci serveru (naslouchacího procesu) pro příjem zpráv.Write a server (listener) console application to receive messages.
  4. Napíšeme konzolovou aplikaci klienta (odesílatele) pro odesílání zpráv.Write a client (sender) console application to send messages.
  5. Spusťte aplikace.Run applications.

PožadavkyPrerequisites

Vytvoření oboru názvů služby Service Bus pomocí webu Azure PortalCreate a namespace using the Azure portal

  1. Přihlaste se na web Azure Portal.Sign in to the Azure portal.

  2. Vyberte vytvořit prostředek.Select Create a resource. Pak vyberte Integrace > Přenos.Then, select Integration > Relay. Pokud se v seznamu Přenos nezobrazuje, vyberte v pravém horním rohu Zobrazit vše.If you don't see Relay in the list, select See All in the top-right corner.

  3. Vyberte vytvořita do pole název zadejte název oboru názvů.Select Create, and enter a namespace name in the Name field. Azure Portal zkontroluje, jestli je název k dispozici.Azure portal checks to see if the name is available.

  4. Vyberte předplatné Azure, ve kterém chcete vytvořit obor názvů.Choose an Azure subscription in which to create the namespace.

  5. V poli Skupina prostředkůvyberte existující skupinu prostředků, do které se má obor názvů umístit, nebo vytvořte novou.For Resource group, choose an existing resource group in which to place the namespace, or create a new one.

  6. Vyberte zemi nebo oblast, ve které by měl být hostovaný obor názvů.Select the country or region in which your namespace should be hosted.

    Vytvoření oboru názvů

  7. Vyberte Vytvořit.Select Create. Azure Portal vytvoří obor názvů a povolí ho.The Azure portal creates your namespace and enables it. Po několika minutách systém zřídí prostředky pro váš účet.After a few minutes, the system provisions resources for your account.

Získání přihlašovacích údajů pro správuGet management credentials

  1. Vyberte všechny prostředkya pak zvolte nově vytvořený název oboru názvů.Select All resources, and then choose the newly created namespace name.

  2. Vyberte zásady sdíleného přístupu.Select Shared access policies.

  3. V části Zásady sdíleného přístupu vyberte RootManageSharedAccessKey.Under Shared access policies, select RootManageSharedAccessKey.

  4. V části zásada SAS: RootManageSharedAccessKeyvyberte tlačítko Kopírovat vedle primárního připojovacího řetězce.Under SAS Policy: RootManageSharedAccessKey, select the Copy button next to Primary Connection String. Tato akce zkopíruje připojovací řetězec do schránky pro pozdější použití.This action copies the connection string to your clipboard for later use. Vložte tuto hodnotu do Poznámkového bloku nebo jiného dočasného umístění.Paste this value into Notepad or some other temporary location.

  5. Zopakujte předchozí krok, zkopírujte si hodnotu primárního klíče a vložte ji do dočasného umístění pro pozdější použití.Repeat the preceding step to copy and paste the value of Primary key to a temporary location for later use.

    connection-string

Vytvoření hybridního připojení pomocí webu Azure PortalCreate a hybrid connection using the Azure portal

Ujistěte se, že jste již vytvořili obor názvů služby Relay.Ensure that you have already created a Relay namespace.

  1. Přihlaste se k webu Azure Portal.Sign in to the Azure portal.

  2. V nabídce vlevo vyberte Všechny prostředky.In the left menu, select All resources.

  3. Vyberte obor názvů, ve kterém chcete vytvořit hybridní připojení.Select the namespace where you want to create the hybrid connection. V tomto případě se jedná o mynewns.In this case, it is mynewns.

  4. V části Obor názvů Relay vyberte Hybridní připojení.Under Relay namespace, select Hybrid Connections.

    Přidání hybridního připojení

  5. V okně přehledu oboru názvů vyberte + Hybridní připojení.In the namespace overview window, select + Hybrid Connection

    Výběr hybridního připojení

  6. V části Vytvořit hybridní připojení zadejte hodnotu názvu hybridního připojení.Under Create Hybrid Connection, enter a value for the hybrid connection name. Ostatní hodnoty ponechte ve výchozím nastavení.Leave the other default values.

    Vyberte Nový

  7. Vyberte Vytvořit.Select Create.

Vytvoření serverové aplikace (naslouchací proces)Create a server application (listener)

Aby bylo možné naslouchat zprávám ze služby Relay a přijímat je, napíšeme konzolovou aplikaci Node.js.To listen and receive messages from the Relay, write a Node.js console application.

Vytvoření aplikace Node.jsCreate a Node.js application

Vytvořte nový soubor JavaScript s názvem listener.js.Create a new JavaScript file called listener.js.

Přidání balíčku NPM služby RelayAdd the Relay NPM package

Spusťte z příkazového řádku uzlu ve složce projektu příkaz npm install hyco-https.Run npm install hyco-https from a Node command prompt in your project folder.

Zápis kódu pro zpracování žádostíWrite some code to handle requests

  1. Na začátek souboru listener.js přidejte následující konstantu.Add the following constant to the top of the listener.js file.

    const https = require('hyco-https');
    
  2. Do souboru listener.js přidejte následující konstanty s podrobnostmi o hybridním připojení.Add the following constants to the listener.js file for the hybrid connection details. Zástupné symboly v závorkách nahraďte hodnotami, které jste získali při vytváření hybridního připojení.Replace the placeholders in brackets with the values you obtained when you created the hybrid connection.

    1. const ns – Obor názvů služby Relay.const ns - The Relay namespace. Nezapomeňte použít plně kvalifikovaný obor názvů, například {namespace}.servicebus.windows.net.Be sure to use the fully qualified namespace name; for example, {namespace}.servicebus.windows.net.
    2. const path – Název hybridního připojení.const path - The name of the hybrid connection.
    3. const keyrule – Název klíče SAS.const keyrule - The name of the SAS key.
    4. const key – Hodnota klíče SAS.const key - The SAS key value.
  3. Do souboru listener.js přidejte následující kód.Add the following code to the listener.js file. ::

    Všimněte si, že kód se příliš neliší od libovolného jednoduchého příkladu serveru HTTP, který můžete najít v kurzech Node.js pro začátečníky. Odlišné je jenom použití createRelayedServer místo obvyklé funkce createServer.You will notice that the code is not much different from any simple HTTP server example you can find in Node.js beginner tutorials, which the exception of using the createRelayedServer instead of the typical createServer function.

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

    Soubor listener.js by měl vypadat takto:Here is what your listener.js file should look like:

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

Vytvoření klientské aplikace (odesílatel)Create a client application (sender)

Aby bylo možné odesílat zprávy do služby Relay, můžete použít libovolného klienta HTTP nebo napsat konzolovou aplikaci Node.js.To send messages to the Relay, you can use any HTTP client, or write a Node.js console application.

Vytvoření aplikace Node.jsCreate a Node.js application

Pokud jste při vytváření služby Relay zakázali možnost Vyžaduje autorizaci klientů, můžete odeslat žádosti na adresu URL hybridních připojení pomocí libovolného prohlížeče.If you have disabled the "Requires Client Authorization" option when creating the Relay, you can send requests to the Hybrid Connections URL with any browser. Pro přístup k chráněným koncovým bodům je nutné vytvořit a předat token v hlavičce ServiceBusAuthorization, která se tady zobrazí.For accessing protected endpoints, you need to create and pass a token in the ServiceBusAuthorization header, which is shown here.

Začněte tím, že vytvoříte nový soubor JavaScript s názvem sender.js.To start, create a new JavaScript file called sender.js.

Přidání balíčku NPM služby RelayAdd the Relay NPM package

Spusťte z příkazového řádku uzlu ve složce projektu příkaz npm install hyco-https.Run npm install hyco-https from a Node command prompt in your project folder. Tento balíček také importuje běžný balíček https.This package also imports the regular https package. Hlavním rozdílem na straně klienta je, že balíček poskytuje funkce k vytvoření identifikátorů URI a tokenů služby Relay.For the client-side, the key difference is that the package provides functions to construct Relay URIs and tokens.

Napsání kódu pro odesílání zprávWrite some code to send messages

  1. Na začátek souboru sender.js přidejte následující konstanty (constants):Add the following constants to the top of the sender.js file.

    const https = require('hyco-https');
    
  2. Do souboru sender.js přidejte následující konstanty s podrobnostmi o hybridním připojení.Add the following constants to the sender.js file for the hybrid connection details. Zástupné symboly v závorkách nahraďte hodnotami, které jste získali při vytváření hybridního připojení.Replace the placeholders in brackets with the values you obtained when you created the hybrid connection.

    1. const ns – Obor názvů služby Relay.const ns - The Relay namespace. Nezapomeňte použít plně kvalifikovaný obor názvů, například {namespace}.servicebus.windows.net.Be sure to use the fully qualified namespace name; for example, {namespace}.servicebus.windows.net.
    2. const path – Název hybridního připojení.const path - The name of the hybrid connection.
    3. const keyrule – Název klíče SAS.const keyrule - The name of the SAS key.
    4. const key – Hodnota klíče SAS.const key - The SAS key value.
  3. Do souboru sender.js přidejte následující kód.Add the following code to the sender.js file. Všimněte si, že kód se od běžného použití klienta HTTPS Node.js významně neliší. Přidá se jenom autorizační hlavička.You will notice that the code does not differ significantly from the regular use of the Node.js HTTPS client; it just adds the authorization header.

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

    Soubor sender.js by měl vypadat takto:Here is what your sender.js file should look like:

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

Spuštění aplikacíRun the applications

  1. Spuštění serverové aplikace: v příkazovém řádku Node.js zadejte node listener.js.Run the server application: from a Node.js command prompt type node listener.js.
  2. Spuštění klientské aplikace: v příkazovém řádku Node.js zadejte node sender.js a nějaký text.Run the client application: from a Node.js command prompt type node sender.js, and enter some text.
  3. Ujistěte se, že výstupem konzoly serverové aplikace je text, který jste zadali v klientské aplikaci.Ensure that the server application console outputs the text that was entered in the client application.

Blahopřejeme, vytvořili jste kompletní aplikaci Hybrid Connections pomocí Node.js!Congratulations, you have created an end-to-end Hybrid Connections application using Node.js!

Další krokyNext steps

V tomto rychlém startu jste vytvořili klientské a serverové aplikace Node. js, které používají protokol HTTP k odesílání a přijímání zpráv.In this quickstart, you created Node.js client and server applications that used HTTP to send and receive messages. Funkce Hybrid Connections Azure Relay také podporuje použití WebSockets k posílání a přijímání zpráv.The Hybrid Connections feature of Azure Relay also supports using WebSockets to send and receive messages. Další informace o použití WebSockets s Azure Relay Hybrid Connections najdete v tématu rychlý Start pro WebSockets.To learn how to use WebSockets with Azure Relay Hybrid Connections, see the WebSockets quickstart.

V tomto rychlém startu jste použili Node. js k vytváření klientských a serverových aplikací.In this quickstart, you used Node.js to create client and server applications. Informace o tom, jak psát klientské a serverové aplikace pomocí .NET Framework, najdete v tématu rychlý Start k rozhraní .NET WebSockets nebo rychlé zprovoznění protokolu HTTP .NET.To learn how to write client and server applications using .NET Framework, see the .NET WebSockets quickstart or the .NET HTTP quickstart.