Начало работы с гибридными подключениями Azure Relay с использованием WebSocket и Node.js
В этом кратком руководстве описано, как создать приложения Node.js, которые отправляют и получают сообщения с использованием гибридных подключений по протоколу WebSocket в Azure Relay. См. дополнительные сведения о службе Azure Relay.
При работе с этим кратким руководством вы выполните следующие задачи:
- Создайте пространство имен ретранслятора с помощью портала Azure.
- Создайте гибридное подключение в этом пространстве имен с помощью портала Azure.
- Создайте серверное консольное приложение (прослушиватель) для получения сообщений.
- Создайте клиентское консольное приложение (отправитель) для отправки сообщений.
- Запустите приложения.
Необходимые компоненты
- Node.js.
- Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начать работу.
Создание пространства имен
Войдите на портал Azure.
В меню слева выберите Все службы. Выберите "Интеграция", найдите ретрансляторы, переместите указатель мыши на ретрансляторы и нажмите кнопку "Создать".
На странице "Создание пространства имен" выполните следующие действия.
Выберите подписку Azure, в которой будет создано пространство имен.
Выберите существующую группу ресурсов, в которую будет размещено это пространство имен, или создайте новую.
Введите имя пространства имен Ретранслятора.
Выберите регион, в котором должно размещаться пространство имен.
В нижней части страницы выберите Review + create (Проверить и создать).
На странице Отзыв и создание выберите Создать.
Через несколько минут вы увидите страницу Ретранслятора для пространства имен.
Получение учетных данных управления
На странице "Ретранслятор" выберите политики общего доступа в меню слева. `
На странице Политики общего доступа щелкните RootManageSharedAccessKey.
В разделе SAS Policy: RootManageSharedAccessKey (Политика SAS: RootManageSharedAccessKey) нажмите кнопку Копировать рядом с элементом Первичная строка подключения. Строка подключения будет скопирована в буфер обмена для дальнейшего использования. Вставьте на время эти значения в Блокноте или любом другом месте.
Повторите предыдущий шаг, скопировав и вставив значение первичного ключа во временное расположение для последующего использования.
Создание гибридного подключения
На странице Ретранслятора для пространства имен выполните следующие действия, чтобы создать гибридное подключение.
В меню слева выберите "Гибридные подключения" и выберите "Гибридные подключения".
На странице "Создание гибридного подключения" введите имя гибридного подключения и нажмите кнопку "Создать".
Создание серверного приложения (прослушивателя)
Для ожидания передачи данных и получения сообщений, отправленных ретранслятором, создайте консольное приложение Node.js.
Создание приложения Node.js
Создайте новый файл JavaScript с именем listener.js
.
Добавление пакета Ретранслятора
Запустите npm install hyco-ws
из командной строки NPM в папке проекта.
Написание кода для получения сообщений
Добавьте следующую константу в верхнюю часть файла
listener.js
.const WebSocket = require('hyco-ws');
Добавьте следующие константы в файл
listener.js
для сведений о гибридном подключении. Замените заполнители в скобках значениями, которые получены при создании гибридного подключения.const ns
— пространство имен ретранслятора. Необходимо использовать полное имя пространства имен, например{namespace}.servicebus.windows.net
.const path
— имя гибридного подключения.const keyrule
— Имя ключа политики общего доступа, который по умолчанию.RootManageSharedAccessKey
const key
— первичный ключ пространства имен, сохраненного ранее.
Добавьте в файл
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); });
Вот как должен выглядеть файл listener.js:
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); });
Создание клиентского приложения (отправителя)
Для отправки сообщений в ретранслятор создайте консольное приложение Node.js.
Создание приложения Node.js
Создайте новый файл JavaScript с именем sender.js
.
Добавление пакета диспетчер пакетов узла ретрансляции
Запустите npm install hyco-ws
из командной строки NPM в папке проекта.
Написание кода для отправки сообщений
Добавьте
constants
в начало файлаsender.js
.const WebSocket = require('hyco-ws'); const readline = require('readline') .createInterface({ input: process.stdin, output: process.stdout });;
Добавьте следующие константы в файл
sender.js
для сведений о гибридном подключении. Замените заполнители в скобках значениями, которые получены при создании гибридного подключения.const ns
— пространство имен ретранслятора. Необходимо использовать полное имя пространства имен, например{namespace}.servicebus.windows.net
.const path
— имя гибридного подключения.const keyrule
— Имя ключа политики общего доступа, который по умолчанию.RootManageSharedAccessKey
const key
— первичный ключ пространства имен, сохраненного ранее.
Добавьте в файл
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(); }); } );
Вот как должен выглядеть файл sender.js:
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(); }); } );
Примечание.
Пример кода в этой статье использует строка подключения для проверки подлинности в пространстве имен Ретранслятора Azure, чтобы упростить учебник. Мы рекомендуем использовать проверку подлинности Идентификатора Microsoft Entra в рабочих средах, а не использовать строка подключения или подписанные URL-адреса, что может быть проще скомпрометировано. Подробные сведения и пример кода для использования проверки подлинности идентификатора Microsoft Entra см. в статье "Проверка подлинности и авторизация приложения с помощью идентификатора Microsoft Entra ID" для доступа к сущностям Ретрансляции Azure и аутентификации управляемого удостоверения с помощью идентификатора Microsoft Entra для доступа к ресурсам Ретранслятора Azure.
Запуск приложений
Запустите серверное приложение. Для этого в командной строке Node.js введите
node listener.js
.Запустите клиентское приложение. Для этого в командной строке Node.js введите
node sender.js
, а затем любой текст.Убедитесь, что серверное консольное приложение выводит текст, введенный в клиентском приложении.
Поздравляем, вы создали приложение для гибридных подключений с помощью Node.js!
Следующие шаги
В этом кратком руководстве описано, как создать клиентские и серверные приложения Node.js, которые отправляют и получают сообщения по протоколу WebSocket. Функция гибридных подключений службы Azure Relay также поддерживает использование протокола HTTP для отправки и получения сообщений. См. дополнительные сведения об использовании протокола HTTP с Node.js и гибридными подключениями Azure Relay.
В этом кратком руководстве описано, как использовать Node.js для создания клиентских и серверных приложений. Сведения о том, как создавать клиентские и серверные приложения с помощью .NET Framework, см. в руководствах по использованию .NET и WebSocket или .NET и HTTP.