Aan de slag met WebSockets voor hybride verbindingen in Azure Relay in Node.js
In deze snelstart maakt u Node.js-toepassingen voor afzenders en ontvangers waarmee berichten worden verzonden en ontvangen met behulp van WebSockets voor hybride verbindingen in Azure Relay. Zie Azure Relay voor meer informatie over Azure Relay in het algemeen.
In deze snelstart voert u de volgende stappen uit:
- Een Relay-naamruimte maken met behulp van Azure Portal.
- Een hybride verbinding in die naamruimte maken met behulp van Azure Portal.
- Een serverconsoletoepassing (listener) schrijven om berichten te ontvangen.
- Een clientconsoletoepassing (afzender) schrijven om berichten te verzenden.
- Toepassingen uitvoeren.
Vereisten
- Node.js.
- Een Azure-abonnement. Als u nog geen abonnement hebt, maakt u een gratis account voordat u begint.
Een naamruimte maken
Meld u aan bij het Azure-portaal.
Selecteer Alle services in het linkermenu. Selecteer Integratie, zoek naar Relays, beweeg de muis over Relays en selecteer Vervolgens Maken.
Voer op de pagina Naamruimte maken de volgende stappen uit:
Kies een Azure-abonnement waarin u de naamruimte wilt maken.
Kies bij Resourcegroep een bestaande resourcegroep waarin de naamruimte moet worden geplaatst of maak een nieuwe resourcegroep.
Voer een naam in voor de Relay-naamruimte.
Selecteer de regio waarin uw naamruimte moet worden gehost.
Selecteer Controleren en maken onderaan de pagina.
Selecteer Maken op de pagina Beoordelen en maken.
Na enkele minuten ziet u de Relay-pagina voor de naamruimte.
Beheerreferenties ophalen
Selecteer op de pagina Relay beleid voor gedeelde toegang in het menu links. `
Selecteer RootManageSharedAccessKey op de pagina Beleid voor gedeelde toegang.
Selecteer onder SAS-beleid: RootManageSharedAccessKey de knop Kopiëren naast primaire verbindingsreeks. Met deze actie kopieert u de verbindingsreeks naar het Klembord voor later gebruik. Plak deze waarde in Kladblok of een andere tijdelijke locatie.
Herhaal de vorige stap om de waarde voor de Primaire sleutel te kopiëren en plakken naar een tijdelijke locatie zodat u deze later kunt gebruiken.
Een hybride verbinding maken
Volg deze stappen op de relaypagina voor uw naamruimte om een hybride verbinding te maken.
Selecteer hybride verbindingen in het linkermenu onder Entiteiten en selecteer vervolgens + Hybride verbinding.
Voer op de pagina Hybride verbinding maken een naam in voor de hybride verbinding en selecteer Maken.
Een servertoepassing (listener) maken
Maak een Node.js-consoletoepassing om berichten van de Relay te beluisteren en te ontvangen.
Een Node.js-toepassing maken
Maak een nieuw JavaScript-bestand met de naam listener.js
.
Het Relay-pakket toevoegen
Voer npm install hyco-ws
uit vanaf een Node-opdrachtprompt in de projectmap.
Code schrijven om berichten te ontvangen
Voeg de volgende constante toe aan het begin van het bestand
listener.js
.const WebSocket = require('hyco-ws');
Voeg de volgende constanten toe aan het bestand
listener.js
voor de gegevens van de hybride verbinding. Vervang de tijdelijke aanduidingen tussen punthaken door de waarden die u hebt verkregen bij het maken van de hybride verbinding.const ns
: de Relay-naamruimte. Zorg ervoor dat u de volledig gekwalificeerde naamruimte gebruikt, bijvoorbeeld{namespace}.servicebus.windows.net
.const path
: de naam van de hybride verbinding.const keyrule
- De naam van uw sleutel voor gedeeld toegangsbeleid, wat standaard isRootManageSharedAccessKey
.const key
- De primaire sleutel van de naamruimte die u eerder hebt opgeslagen.
Voeg de volgende code toe aan het bestand
listener.js
: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); });
Hier ziet u hoe uw listener.js-bestand eruit moet zien:
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); });
Een clienttoepassing maken (afzender)
Maak een Node.js-consoletoepassing om berichten naar de Relay te verzenden.
Een Node.js-toepassing maken
Maak een nieuw JavaScript-bestand met de naam sender.js
.
Het relayknooppuntpakket Pakketbeheer toevoegen
Voer npm install hyco-ws
uit vanaf een Node-opdrachtprompt in de projectmap.
Code schrijven om berichten te verzenden
Plaats de volgende
constants
boven aan het bestandsender.js
.const WebSocket = require('hyco-ws'); const readline = require('readline') .createInterface({ input: process.stdin, output: process.stdout });;
Voeg de volgende constanten toe aan het bestand
sender.js
voor de gegevens van de hybride verbinding. Vervang de tijdelijke aanduidingen tussen punthaken door de waarden die u hebt verkregen bij het maken van de hybride verbinding.const ns
: de Relay-naamruimte. Zorg ervoor dat u de volledig gekwalificeerde naamruimte gebruikt, bijvoorbeeld{namespace}.servicebus.windows.net
.const path
: de naam van de hybride verbinding.const keyrule
- De naam van uw sleutel voor gedeeld toegangsbeleid, wat standaard isRootManageSharedAccessKey
.const key
- De primaire sleutel van de naamruimte die u eerder hebt opgeslagen.
Voeg de volgende code toe aan het bestand
sender.js
: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(); }); } );
Hier ziet u hoe uw sender.js bestand eruit moet zien:
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(); }); } );
Notitie
De voorbeeldcode in dit artikel maakt gebruik van een verbindingsreeks voor verificatie bij een Azure Relay-naamruimte om de zelfstudie eenvoudig te houden. U wordt aangeraden Microsoft Entra ID-verificatie te gebruiken in productieomgevingen, in plaats van gebruik te maken van verbindingsreeks s of handtekeningen voor gedeelde toegang, die gemakkelijker kunnen worden aangetast. Zie Een toepassing verifiëren en autoriseren met Microsoft Entra ID voor toegang tot Azure Relay-entiteiten en een beheerde identiteit verifiëren met Microsoft Entra ID voor toegang tot Azure Relay-entiteiten en een beheerde identiteit verifiëren met Microsoft Entra-id voor toegang tot Azure Relay-resources voor gedetailleerde informatie en voorbeeldcode voor het gebruik van de Microsoft Entra-id.
De toepassingen uitvoeren
Voer de servertoepassing uit: via een Node.js-opdrachtprompt van het type
node listener.js
.Voer de clienttoepassing uit: via een Node.js-opdrachtprompt van het type
node sender.js
, en voer tekst in.Zorg ervoor dat de servertoepassingsconsole de tekst uitvoert die in de clienttoepassing is ingevoerd.
Gefeliciteerd, u hebt een end-to-endtoepassing met hybride verbindingen gemaakt met behulp van Node.js!
Volgende stappen
In deze snelstart hebt u Node.js-toepassingen gemaakt voor clients en servers waarmee berichten worden verzonden en ontvangen met behulp van WebSockets. De hybride verbindingsfunctie van Azure Relay ondersteunt tevens HTTP voor het verzenden en ontvangen van berichten. Zie de snelstart over Node.js HTTP voor informatie over het gebruik van HTTP met hybride verbindingen van Azure Relay.
In deze snelstart hebt u Node.js gebruikt om client- en servertoepassingen te maken. Zie de snelstart over WebSockets in .NET of de snelstart over HTTP in .NET voor informatie over het schrijven van client- en servertoepassingen in .Net Framework.