Client class
Клиент службы Центра Интернета вещей используется для взаимодействия с устройствами через Центр Интернета вещей Azure. Он позволяет пользователю ПАКЕТА SDK:
- отправка облачных устройств (также известных как команды) на устройства: команды помещаются в Центр Интернета вещей и передаются асинхронно, только если устройство подключено. Только 50 команд могут быть помещены в очередь на каждое устройство.
- вызов прямых методов на устройствах (которые будут работать только в том случае, если устройство подключено в данный момент: это синхронный способ взаимодействия с устройством).
- прослушивание сообщений обратной связи, отправленных устройствами для предыдущих команд.
- прослушивает уведомления о отправке файлов с устройств.
Пользователи должны создавать новые экземпляры Client путем вызова одного из методов фабрики, fromConnectionString или fromSharedAccessSignatureдля создания клиента службы Центра Интернета вещей.
- Расширяет
-
EventEmitter
Методика
| close() | |
| close(Incoming |
Закрывает подключение к Центру Интернета вещей. |
| from |
Создает клиент службы Центра Интернета вещей из заданной строки подключения с помощью транспорта по умолчанию (Amqp) или одного, указанного во втором аргументе. |
| from |
Создает клиент службы Центра Интернета вещей из заданной подписанной url-адреса с помощью транспорта по умолчанию (Amqp) или указанного во втором аргументе. |
| from |
Создает клиент службы Центра Интернета вещей из заданного токена AzureCredential с помощью транспорта по умолчанию (Amqp) или одного, указанного во втором аргументе. |
| get |
|
| get |
Возвращает объект AmqpReceiver, который выдает события при получении клиентом новых сообщений обратной связи. |
| get |
|
| get |
Возвращает объект AmqpReceiver, который выдает события при получении клиентом новых уведомлений о отправке файлов. |
| invoke |
|
| invoke |
Вызывает метод на определенном устройстве или модуле. |
| invoke |
|
| invoke |
|
| open() | |
| open(Incoming |
Открывает подключение к Центру Интернета вещей. |
| send(string, Message | Buffer |
|
| send(string, Message | Buffer |
Отправляет сообщение на устройство. |
| set |
Задайте политику, используемую клиентом для повторных сетевых операций. |
Наследуемые методы
| add |
Псевдоним для |
| emit<E>(string | symbol, any[]) | Синхронно вызывает каждый из прослушивателей, зарегистрированных для события с именем Возвращает
|
| event |
Возвращает массив, в котором перечислены события, для которых у поставщика зарегистрированы прослушиватели.
|
| get |
Возвращает текущее значение максимального прослушивателя для |
| listener |
Возвращает число прослушивателей, прослушивающих событие с именем |
| listeners<E>(string | symbol) | Возвращает копию массива прослушивателей для события с именем
|
| off<E>(string | symbol, (args: any[]) => void) | Псевдоним для |
| on<E>(string | symbol, (args: any[]) => void) | Добавляет функцию
Возвращает ссылку на По умолчанию прослушиватели событий вызываются в том порядке, в который они добавляются. Метод
|
| once<E>(string | symbol, (args: any[]) => void) | Добавляет функцию однократного
Возвращает ссылку на По умолчанию прослушиватели событий вызываются в том порядке, в который они добавляются. Метод
|
| prepend |
Добавляет функцию
Возвращает ссылку на |
| prepend |
Добавляет функцию однократного
Возвращает ссылку на |
| raw |
Возвращает копию массива прослушивателей для события с именем
|
| remove |
Удаляет все прослушиватели или те из указанных Не рекомендуется удалять прослушиватели, добавленные в другое место в коде, особенно если экземпляр Возвращает ссылку на |
| remove |
Удаляет указанный
После создания события все прослушиватели, подключенные к нему во время создания, вызываются в порядке. Это означает, что любые
Поскольку слушатели управляются с помощью внутреннего массива, вызов этого параметра изменяет индексы позиций любого слушателя, зарегистрированного после удаления слушателя. Это не повлияет на порядок вызова прослушивателей, но это означает, что все копии массива прослушивателя, возвращенные методом Если одна функция была добавлена в обработчик несколько раз для одного события (как в примере ниже),
Возвращает ссылку на |
| set |
По умолчанию Возвращает ссылку на |
| [capture |
Метод
|
Подробнее о методе
close()
function close(): Promise<ResultWithIncomingMessage<Disconnected>>
Возвращает
Promise<ResultWithIncomingMessage<Disconnected>>
close(IncomingMessageCallback<Disconnected>)
Закрывает подключение к Центру Интернета вещей.
function close(done?: IncomingMessageCallback<Disconnected>)
Параметры
- done
-
IncomingMessageCallback<Disconnected>
Необязательная функция для вызова при завершении операции.
done будет передан аргумент объекта Error, который будет иметь значение NULL, если операция успешно завершена.
fromConnectionString(string, TransportCtor)
Создает клиент службы Центра Интернета вещей из заданной строки подключения с помощью транспорта по умолчанию (Amqp) или одного, указанного во втором аргументе.
static function fromConnectionString(connStr: string, transportCtor?: TransportCtor): Client
Параметры
- connStr
-
string
Строка подключения, которая инкапсулирует разрешения "device connect" в Центре Интернета вещей.
- transportCtor
- TransportCtor
Возвращает
fromSharedAccessSignature(string, TransportCtor)
Создает клиент службы Центра Интернета вещей из заданной подписанной url-адреса с помощью транспорта по умолчанию (Amqp) или указанного во втором аргументе.
static function fromSharedAccessSignature(sharedAccessSignature: string, transportCtor?: TransportCtor): Client
Параметры
- sharedAccessSignature
-
string
Подписанный URL-адрес, который инкапсулирует разрешения "service connect" в Центре Интернета вещей.
- transportCtor
- TransportCtor
Возвращает
fromTokenCredential(string, TokenCredential, TransportCtor)
Создает клиент службы Центра Интернета вещей из заданного токена AzureCredential с помощью транспорта по умолчанию (Amqp) или одного, указанного во втором аргументе.
static function fromTokenCredential(hostName: string, tokenCredential: TokenCredential, transportCtor?: TransportCtor): Client
Параметры
- hostName
-
string
Имя узла службы Azure.
- tokenCredential
- TokenCredential
Токен AzureCredential, используемый для проверки подлинности в службе Azure
- transportCtor
- TransportCtor
Возвращает
getFeedbackReceiver()
function getFeedbackReceiver(): Promise<ResultWithIncomingMessage<ServiceReceiver>>
Возвращает
Promise<ResultWithIncomingMessage<ServiceReceiver>>
getFeedbackReceiver(IncomingMessageCallback<ServiceReceiver>)
Возвращает объект AmqpReceiver, который выдает события при получении клиентом новых сообщений обратной связи.
function getFeedbackReceiver(done?: IncomingMessageCallback<ServiceReceiver>)
Параметры
- done
-
IncomingMessageCallback<ServiceReceiver>
Необязательная функция для вызова при завершении операции.
done будет вызываться с двумя аргументами: объект Error (может быть null) и объект AmqpReceiver.
getFileNotificationReceiver()
function getFileNotificationReceiver(): Promise<ResultWithIncomingMessage<ServiceReceiver>>
Возвращает
Promise<ResultWithIncomingMessage<ServiceReceiver>>
getFileNotificationReceiver(IncomingMessageCallback<ServiceReceiver>)
Возвращает объект AmqpReceiver, который выдает события при получении клиентом новых уведомлений о отправке файлов.
function getFileNotificationReceiver(done?: IncomingMessageCallback<ServiceReceiver>)
Параметры
- done
-
IncomingMessageCallback<ServiceReceiver>
Необязательная функция для вызова при завершении операции.
done будет вызываться с двумя аргументами: объект Error (может быть null) и объект AmqpReceiver.
invokeDeviceMethod(string, DeviceMethodParams)
function invokeDeviceMethod(deviceId: string, methodParams: DeviceMethodParams): Promise<ResultWithIncomingMessage<any>>
Параметры
- deviceId
-
string
- methodParams
- DeviceMethodParams
Возвращает
Promise<ResultWithIncomingMessage<any>>
invokeDeviceMethod(string, DeviceMethodParams, IncomingMessageCallback<any>)
Вызывает метод на определенном устройстве или модуле.
function invokeDeviceMethod(deviceId: string, methodParams: DeviceMethodParams, done?: IncomingMessageCallback<any>)
Параметры
- deviceId
-
string
Идентификатор существующего удостоверения устройства.
- methodParams
- DeviceMethodParams
- done
-
IncomingMessageCallback<any>
Необязательный обратный вызов для вызова с результатом выполнения метода.
invokeDeviceMethod(string, string, DeviceMethodParams)
function invokeDeviceMethod(deviceId: string, moduleId: string, methodParams: DeviceMethodParams): Promise<ResultWithIncomingMessage<any>>
Параметры
- deviceId
-
string
- moduleId
-
string
- methodParams
- DeviceMethodParams
Возвращает
Promise<ResultWithIncomingMessage<any>>
invokeDeviceMethod(string, string, DeviceMethodParams, IncomingMessageCallback<any>)
function invokeDeviceMethod(deviceId: string, moduleId: string, methodParams: DeviceMethodParams, done: IncomingMessageCallback<any>)
Параметры
- deviceId
-
string
- moduleId
-
string
- methodParams
- DeviceMethodParams
- done
-
IncomingMessageCallback<any>
open()
function open(): Promise<ResultWithIncomingMessage<Connected>>
Возвращает
Promise<ResultWithIncomingMessage<Connected>>
open(IncomingMessageCallback<Connected>)
Открывает подключение к Центру Интернета вещей.
function open(done?: IncomingMessageCallback<Connected>)
Параметры
- done
-
IncomingMessageCallback<Connected>
Необязательная функция для вызова при завершении операции.
done будет передан аргумент объекта Error, который будет иметь значение NULL, если операция успешно завершена.
send(string, Message | BufferConvertible)
function send(deviceId: string, message: Message | BufferConvertible): Promise<ResultWithIncomingMessage<MessageEnqueued>>
Параметры
- deviceId
-
string
- message
-
Message | BufferConvertible
Возвращает
Promise<ResultWithIncomingMessage<MessageEnqueued>>
send(string, Message | BufferConvertible, IncomingMessageCallback<MessageEnqueued>)
Отправляет сообщение на устройство.
function send(deviceId: string, message: Message | BufferConvertible, done?: IncomingMessageCallback<MessageEnqueued>)
Параметры
- deviceId
-
string
Идентификатор существующего удостоверения устройства.
- message
-
Message | BufferConvertible
Текст сообщения для отправки на устройство.
Если message не является типом message, он будет преобразован.
- done
-
IncomingMessageCallback<MessageEnqueued>
Необязательная функция для вызова при завершении операции.
done будет вызываться с двумя аргументами: объект error (может быть null) и объект ответа, зависящий от транспорта, полезный для ведения журнала или отладки.
setRetryPolicy(RetryPolicy)
Задайте политику, используемую клиентом для повторных сетевых операций.
function setRetryPolicy(policy: RetryPolicy)
Параметры
- policy
-
RetryPolicy
политика, используемая для повторных операций (например, открытия, отправки и т. д.). Пакет SDK поставляется с 2 "встроенными" политиками: ExponentialBackoffWithJitter (по умолчанию) и NoRetry (для отмены любой формы повторных попыток). Пользователь также может передать свой собственный объект, если он реализует 2 метода: - shouldRetry(err: Error): boolean: указывает, следует ли выполнить операцию на основе типа ошибки : nextRetryTimeout(retryTimeout: number, регулирование: boolean): число: возвращает время ожидания (в миллисекундах) перед повторным повтором на основе последнего числа попыток (retryCount) и тот факт, что ошибка является ошибкой регулирования или нет.
Сведения о наследуемом методе
addListener<E>(string | symbol, (args: any[]) => void)
Псевдоним для emitter.on(eventName, listener).
function addListener<E>(eventName: string | symbol, listener: (args: any[]) => void): Client
Параметры
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Возвращает
наследуется от EventEmitter.addListener
emit<E>(string | symbol, any[])
Синхронно вызывает каждый из прослушивателей, зарегистрированных для события с именем eventName, в том порядке, в который они были зарегистрированы, передавая предоставленные аргументы каждому из них.
Возвращает true, если событие имело прослушиватели, false в противном случае.
import { EventEmitter } from 'node:events';
const myEmitter = new EventEmitter();
// First listener
myEmitter.on('event', function firstListener() {
console.log('Helloooo! first listener');
});
// Second listener
myEmitter.on('event', function secondListener(arg1, arg2) {
console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
});
// Third listener
myEmitter.on('event', function thirdListener(...args) {
const parameters = args.join(', ');
console.log(`event with parameters ${parameters} in third listener`);
});
console.log(myEmitter.listeners('event'));
myEmitter.emit('event', 1, 2, 3, 4, 5);
// Prints:
// [
// [Function: firstListener],
// [Function: secondListener],
// [Function: thirdListener]
// ]
// Helloooo! first listener
// event with parameters 1, 2 in second listener
// event with parameters 1, 2, 3, 4, 5 in third listener
function emit<E>(eventName: string | symbol, args: any[]): boolean
Параметры
- eventName
-
string | symbol
- args
-
any[]
Возвращает
boolean
наследуется от EventEmitter.emit
eventNames()
Возвращает массив, в котором перечислены события, для которых у поставщика зарегистрированы прослушиватели.
import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.on('foo', () => {});
myEE.on('bar', () => {});
const sym = Symbol('symbol');
myEE.on(sym, () => {});
console.log(myEE.eventNames());
// Prints: [ 'foo', 'bar', Symbol(symbol) ]
function eventNames(): (string | symbol)[]
Возвращает
(string | symbol)[]
наследуется от EventEmitter.eventNames
getMaxListeners()
Возвращает текущее значение максимального прослушивателя для EventEmitter, заданное emitter.setMaxListeners(n) или значением по умолчанию events.defaultMaxListeners.
function getMaxListeners(): number
Возвращает
number
наследуется от EventEmitter.getMaxListeners
listenerCount<E>(string | symbol, (args: any[]) => void)
Возвращает число прослушивателей, прослушивающих событие с именем eventName.
Если указана listener, он возвращает количество раз, когда прослушиватель найден в списке прослушивателей события.
function listenerCount<E>(eventName: string | symbol, listener?: (args: any[]) => void): number
Параметры
- eventName
-
string | symbol
Имя прослушиваемого события
- listener
-
(args: any[]) => void
Функция обработчика событий
Возвращает
number
наследуется от EventEmitter.listenerCount
listeners<E>(string | symbol)
Возвращает копию массива прослушивателей для события с именем eventName.
server.on('connection', (stream) => {
console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]
function listeners<E>(eventName: string | symbol): (args: any[]) => void[]
Параметры
- eventName
-
string | symbol
Возвращает
(args: any[]) => void[]
наследуется от EventEmitter.listeners
off<E>(string | symbol, (args: any[]) => void)
Псевдоним для emitter.removeListener().
function off<E>(eventName: string | symbol, listener: (args: any[]) => void): Client
Параметры
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Возвращает
наследуется от EventEmitter.off
on<E>(string | symbol, (args: any[]) => void)
Добавляет функцию listener в конец массива прослушивателей для события с именем eventName. Проверка не выполняется, чтобы узнать, добавлена ли listener. Несколько вызовов, проходящих одно и то же сочетание eventName и listener, приведет к добавлению listener и вызову несколько раз.
server.on('connection', (stream) => {
console.log('someone connected!');
});
Возвращает ссылку на EventEmitter, чтобы вызовы могли быть связаны.
По умолчанию прослушиватели событий вызываются в том порядке, в который они добавляются. Метод emitter.prependListener() можно использовать в качестве альтернативы для добавления прослушивателя событий в начало массива прослушивателей.
import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.on('foo', () => console.log('a'));
myEE.prependListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
// b
// a
function on<E>(eventName: string | symbol, listener: (args: any[]) => void): Client
Параметры
- eventName
-
string | symbol
Имя события.
- listener
-
(args: any[]) => void
Функция обратного вызова
Возвращает
наследуется от EventEmitter.on
once<E>(string | symbol, (args: any[]) => void)
Добавляет функцию однократногоeventName этот прослушиватель удаляется и вызывается.
server.once('connection', (stream) => {
console.log('Ah, we have our first user!');
});
Возвращает ссылку на EventEmitter, чтобы вызовы могли быть связаны.
По умолчанию прослушиватели событий вызываются в том порядке, в который они добавляются. Метод emitter.prependOnceListener() можно использовать в качестве альтернативы для добавления прослушивателя событий в начало массива прослушивателей.
import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.once('foo', () => console.log('a'));
myEE.prependOnceListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
// b
// a
function once<E>(eventName: string | symbol, listener: (args: any[]) => void): Client
Параметры
- eventName
-
string | symbol
Имя события.
- listener
-
(args: any[]) => void
Функция обратного вызова
Возвращает
наследуется от EventEmitter.один раз
prependListener<E>(string | symbol, (args: any[]) => void)
Добавляет функцию listener в начала массива прослушивателей для события с именем eventName. Проверка не выполняется, чтобы узнать, добавлена ли listener. Несколько вызовов, проходящих одно и то же сочетание eventName и listener, приведет к добавлению listener и вызову несколько раз.
server.prependListener('connection', (stream) => {
console.log('someone connected!');
});
Возвращает ссылку на EventEmitter, чтобы вызовы могли быть связаны.
function prependListener<E>(eventName: string | symbol, listener: (args: any[]) => void): Client
Параметры
- eventName
-
string | symbol
Имя события.
- listener
-
(args: any[]) => void
Функция обратного вызова
Возвращает
унаследован от EventEmitter.prependListener
prependOnceListener<E>(string | symbol, (args: any[]) => void)
Добавляет функцию однократногоeventName этот прослушиватель удаляется, а затем вызывается.
server.prependOnceListener('connection', (stream) => {
console.log('Ah, we have our first user!');
});
Возвращает ссылку на EventEmitter, чтобы вызовы могли быть связаны.
function prependOnceListener<E>(eventName: string | symbol, listener: (args: any[]) => void): Client
Параметры
- eventName
-
string | symbol
Имя события.
- listener
-
(args: any[]) => void
Функция обратного вызова
Возвращает
наследуется от EventEmitter.prependOnceListener
rawListeners<E>(string | symbol)
Возвращает копию массива прослушивателей для события с именем eventName, включая любые оболочки (например, созданные .once()).
import { EventEmitter } from 'node:events';
const emitter = new EventEmitter();
emitter.once('log', () => console.log('log once'));
// Returns a new Array with a function `onceWrapper` which has a property
// `listener` which contains the original listener bound above
const listeners = emitter.rawListeners('log');
const logFnWrapper = listeners[0];
// Logs "log once" to the console and does not unbind the `once` event
logFnWrapper.listener();
// Logs "log once" to the console and removes the listener
logFnWrapper();
emitter.on('log', () => console.log('log persistently'));
// Will return a new Array with a single function bound by `.on()` above
const newListeners = emitter.rawListeners('log');
// Logs "log persistently" twice
newListeners[0]();
emitter.emit('log');
function rawListeners<E>(eventName: string | symbol): (args: any[]) => void[]
Параметры
- eventName
-
string | symbol
Возвращает
(args: any[]) => void[]
наследуется от EventEmitter.rawListeners
removeAllListeners<E>(string | symbol)
Удаляет все прослушиватели или те из указанных eventName.
Не рекомендуется удалять прослушиватели, добавленные в другое место в коде, особенно если экземпляр EventEmitter был создан другим компонентом или модулем (например, сокетами или потоками файлов).
Возвращает ссылку на EventEmitter, чтобы вызовы могли быть связаны.
function removeAllListeners<E>(eventName?: string | symbol): Client
Параметры
- eventName
-
string | symbol
Возвращает
наследуется от EventEmitter.removeAllListeners
removeListener<E>(string | symbol, (args: any[]) => void)
Удаляет указанный listener из массива прослушивателя для события с именем eventName.
const callback = (stream) => {
console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);
removeListener() удаляет в большинстве случаев один экземпляр прослушивателя из массива прослушивателя. Если один прослушиватель был добавлен несколько раз в массив прослушивателя для указанного eventName, removeListener() необходимо вызывать несколько раз, чтобы удалить каждый экземпляр.
После создания события все прослушиватели, подключенные к нему во время создания, вызываются в порядке. Это означает, что любые removeListener() вызовы removeAllListeners()OR после эмитирования и до завершения выполнения последним слушателем не удалят их из emit() процесса. Последующие события ведут себя должным образом.
import { EventEmitter } from 'node:events';
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();
const callbackA = () => {
console.log('A');
myEmitter.removeListener('event', callbackB);
};
const callbackB = () => {
console.log('B');
};
myEmitter.on('event', callbackA);
myEmitter.on('event', callbackB);
// callbackA removes listener callbackB but it will still be called.
// Internal listener array at time of emit [callbackA, callbackB]
myEmitter.emit('event');
// Prints:
// A
// B
// callbackB is now removed.
// Internal listener array [callbackA]
myEmitter.emit('event');
// Prints:
// A
Поскольку слушатели управляются с помощью внутреннего массива, вызов этого параметра изменяет индексы позиций любого слушателя, зарегистрированного после удаления слушателя. Это не повлияет на порядок вызова прослушивателей, но это означает, что все копии массива прослушивателя, возвращенные методом emitter.listeners(), должны быть воссозданы.
Если одна функция была добавлена в обработчик несколько раз для одного события (как в примере ниже), removeListener() удалит последний добавленный экземпляр. В примере прослушивателя once('ping') удаляется:
import { EventEmitter } from 'node:events';
const ee = new EventEmitter();
function pong() {
console.log('pong');
}
ee.on('ping', pong);
ee.once('ping', pong);
ee.removeListener('ping', pong);
ee.emit('ping');
ee.emit('ping');
Возвращает ссылку на EventEmitter, чтобы вызовы могли быть связаны.
function removeListener<E>(eventName: string | symbol, listener: (args: any[]) => void): Client
Параметры
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Возвращает
наследуется от EventEmitter.removeListener
setMaxListeners(number)
По умолчанию EventEmitterбудет выводить предупреждение, если для определенного события добавляются более 10 прослушивателей. Это полезное значение по умолчанию, которое помогает находить утечки памяти. Метод emitter.setMaxListeners() позволяет изменить ограничение для этого конкретного экземпляра EventEmitter. Для указания неограниченного количества прослушивателей можно задать значение Infinity (или 0).
Возвращает ссылку на EventEmitter, чтобы вызовы могли быть связаны.
function setMaxListeners(n: number): Client
Параметры
- n
-
number
Возвращает
наследуется от EventEmitter.setMaxListeners
[captureRejectionSymbol](Error, string | symbol, any[])
Метод Symbol.for('nodejs.rejection') вызывается в случае, если при выпуске события происходит отказ обещания и captureRejections активируется на эмиттере.
Возможно использовать events.captureRejectionSymbol вместо Symbol.for('nodejs.rejection').
import { EventEmitter, captureRejectionSymbol } from 'node:events';
class MyClass extends EventEmitter {
constructor() {
super({ captureRejections: true });
}
[captureRejectionSymbol](err, event, ...args) {
console.log('rejection happened for', event, 'with', err, ...args);
this.destroy(err);
}
destroy(err) {
// Tear the resource down here.
}
}
function [captureRejectionSymbol](error: Error, event: string | symbol, args: any[])
Параметры
- error
-
Error
- event
-
string | symbol
- args
-
any[]
Унаследованный от EventEmitter.__@captureRejectionSymbol@90