Этот пост о чтении сообщений Service Bus Queues от Node.js.
-
Создание очередей
-
Заполнение очередей
-
Загрузка веб-матрицы
-
Настройка узла
-
Настройка Azure
-
Написание кода
-
Чтение очередей служебной шины
-
Тестирование локально
Последнее сообщение в блоге
Код для создания и заполнения очереди
Заполнить очередь SB
NamespaceManager namespaceManager = NamespaceManager.Create(); Console.WriteLine("\nCreating Queue '{0}'...", QueueName); // Delete if exists if (namespaceManager.QueueExists(QueueName)) { namespaceManager.DeleteQueue(QueueName); } namespaceManager.CreateQueue(QueueName);
Код для определения типа сообщения
Определить тип сообщения
private static BrokeredMessage CreateSampleMessage(string messageId, string messageBody) { BrokeredMessage message = new BrokeredMessage(messageBody); message.MessageId = messageId; return message; }
Код для записи в очередь
Написать в очередь
queueClient.Send(message);
Восстановление после ошибок
Восстановление после ошибок
catch (MessagingException e) { if (!e.IsTransient) { Console.WriteLine(e.Message); throw; } .... // If we hit error, wait a couple of seconds and loop again private static void HandleTransientErrors(MessagingException e) { //If transient error/exception, let's back-off for 2 seconds and retry Console.WriteLine(e.Message); Console.WriteLine("Will retry sending the message in 2 seconds"); Thread.Sleep(2000); }
Этот пост о том, как заставить узел читать сообщения очереди служебной шины
Основная цель здесь — запустить и запустить узел и иметь разумную среду IDE для работы. Web Matrix — отличный инструмент
Установить веб-матрицу
Рисунок 1: Установка веб-матрицы
Установка узла
Давайте установим Node в точке. Ссылка для скачивания для узла http://nodejs.org/
Рисунок 2: Установка Node.js в Windows
После установки
Все необходимые вам файлы узлов теперь находятся здесь: c: \ program files \ nodejs
Запуск веб-матрицы и начало нового проекта
Мы уже установили Web Matrix. Пришло время начать писать привет мир. Выберите из галереи шаблонов.
Выбрать из галереи шаблонов
В меню «Файл» выберите «Сайт из галереи шаблонов».
Рисунок 3: Галерея шаблонов веб-матриц
Просмотр проекта по умолчанию
Вам нужно будет указать название сайта. Для вас будет создан веб-сайт Azure. Это будет то место, где мы развернемся, когда будем готовы.
Рисунок 4: Определение веб-сайта Azure
Получение папки вашего проекта
Если щелкнуть правой кнопкой мыши в решении, вы можете выбрать «Показать файл в Проводнике». Это позволяет вам легко переходить к папке, если вы копируете путь в буфер обмена. Мы перейдем к папке нашего проекта, чтобы установить пакеты узла Azure. Запустим утилиту «npm» который позволяет вам устанавливать новые пакеты с сайта npm прямо в наш проект узла из Web Matrix.
Рисунок 5: Как добраться до папки проекта
Командная строка
Командная строка — это место, где вы фактически добавите необходимые пакеты узлов.
Рисунок 6: Командная строка
Регулировка пути
Вам нужно будет исправить свой путь, чтобы убедиться, что исполняемые файлы узла доступны.
Рисунок 7: Настройка пути
Простая команда NPM
Обратите внимание, что у нас есть некоторые параметры, доступные через NPM.
Рисунок 8: Использование NPM
Установите пакет Azure
Просто наберите npm и установите Azure.
Рисунок 9: Установка пакета Azure
Проверка пакета (ов)
Ниже вы можете увидеть, что у нас установлено несколько модулей. Вы можете развернуть папку node_modules, чтобы увидеть, что установлено.
Рисунок 10: Просмотр пакета
Написание некоторого кода для node.js
Теперь мы можем начать писать код для node.js.
Одной из первых вещей, которые вам понадобятся, является строка соединения для вашего соединения по служебной шине. Вы можете получить это на портале.
Вы также можете получить его с портала, как показано ниже.
Рисунок 11: Получение строки подключения служебной шины
Некоторый код Node.js (server.js)
Ниже приведен код для чтения сообщений из очереди служебной шины Azure.
Основной пример кода
var azure = require('azure'); var http = require('http'); var queue = 'samplequeue'; var error; http.createServer(function (req, res) { var connString1 = 'Endpoint=sb://smartdoorqueue-ns.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=[get this from the portal]'; console.log('createServiceBusService2()'); // Crucial function call to get connected. Make sure you have the proper // configuration with auzre to run serviceBusServiceClient = azure.createServiceBusService(connString1); console.log('create topic()'); serviceBusServiceClient.createTopicIfNotExists('MyTopic3', function (error) { if (!error) { // Topic was created or exists console.log('topic created or exists.'); } else { console.log(error); } }); // Helps with error tracking console.log('call receiveMessage()'); receiveMessages(); // Get rid of output to browser for now //res.writeHead(200, { 'Content-Type': 'text/html' }); //res.end('Hello, world 6!'); }).listen(process.env.PORT || 8081); // Here is the code that will receive the first 2 messages in the queue. function receiveMessages() { // Step 2: Receive the messages. serviceBusServiceClient.receiveQueueMessage(queue, true, function (error1, message1) { if (error1) { console.log(error1); } else { console.log(message1.body); serviceBusServiceClient.receiveQueueMessage(queue, true, function (error2, message2) { if (error2) { console.log(error2); } else { console.log(message2.body); } }); } }); } /* OLD HELLO WORLD CODE var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, { 'Content-Type': 'text/html' }); res.end('Hello, world!'); }).listen(process.env.PORT || 8080); */
Просмотр вывода из сообщений в очереди
Теперь это простой случай запуска кода путем нажатия кнопки « Выполнить» на панели инструментов WebMatrix. Вот как выглядит результат:
Рисунок 13: Просмотр сообщения из очереди служебной шины
Вывод
В этом простом сообщении показано, как можно использовать Node.js для чтения сообщений из служебной шины Azure.