Client class
IoT Hub device client used to connect a device with an Azure IoT hub. Users of the SDK should call one of the factory methods, fromConnectionString or fromSharedAccessSignature to create an IoT Hub device client.
- Extends
-
InternalClient
Constructors
| Client(Device |
Methods
| close() | |
| close(Callback<Disconnected>) | Closes the transport connection and destroys the client resources. Note: After calling this method the Client object cannot be reused. |
| from |
Creates an IoT Hub device client from the given authentication method and using the given transport type. |
| from |
Creates an IoT Hub device client from the given connection string using the given transport type. |
| from |
Creates an IoT Hub device client from the given shared access signature using the given transport type. |
| get |
|
| get |
The |
| notify |
|
| notify |
The |
| on |
Registers a callback for a method named |
| set |
|
| set |
|
| upload |
|
| upload |
The |
Inherited Methods
| abandon(Message) | |
| abandon(Message, Callback<Message |
|
| add |
Alias for |
| complete(Message) | |
| complete(Message, Callback<Message |
|
| emit(string | symbol, any[]) | Synchronously calls each of the listeners registered for the event named
|
| event |
Returns an array listing the events for which the emitter has registered
listeners. The values in the array are strings or
|
| get |
Returns the current max listener value for the |
| get |
|
| get |
|
| listener |
Returns the number of listeners listening to the event named |
| listeners(string | symbol) | Returns a copy of the array of listeners for the event named
|
| off(string | symbol, (args: any[]) => void) | Alias for |
| on(string | symbol, (args: any[]) => void) | Adds the
Returns a reference to the By default, event listeners are invoked in the order they are added. The
|
| once(string | symbol, (args: any[]) => void) | Adds a one-time
Returns a reference to the By default, event listeners are invoked in the order they are added. The
|
| open() | |
| open(Callback<Connected>) | |
| prepend |
Adds the
Returns a reference to the |
| prepend |
Adds a one-time
Returns a reference to the |
| raw |
Returns a copy of the array of listeners for the event named
|
| reject(Message) | |
| reject(Message, Callback<Message |
|
| remove |
Removes all listeners, or those of the specified Returns a reference to the |
| remove |
Removes the specified
Once an event is emitted, all listeners attached to it at the
time of emitting are called in order. This implies that any
Because listeners are managed using an internal array, calling this will
change the position indices of any listener registered after the listener
being removed. This will not impact the order in which listeners are called,
but it means that any copies of the listener array as returned by
the When a single function has been added as a handler multiple times for a single
event (as in the example below),
Returns a reference to the |
| send |
|
| send |
|
| send |
|
| send |
|
| set |
By default |
| set |
Sets the retry policy used by the client on all operations. The default is ExponentialBackoffWithJitter. |
| set |
|
| set |
|
| update |
Constructor Details
Client(DeviceTransport, string, BlobUploadClient, FileUploadInterface)
new Client(transport: DeviceTransport, connStr?: string, blobUploadClient?: BlobUploadClient, fileUploadApi?: FileUploadInterface)
Parameters
- transport
- DeviceTransport
An object that implements the interface expected of a transport object, e.g., Http.
- connStr
-
string
A connection string (optional: when not provided, updateSharedAccessSignature must be called to set the SharedAccessSignature token directly).
- blobUploadClient
-
BlobUploadClient
An object that is capable of uploading a stream to a blob.
- fileUploadApi
-
FileUploadInterface
An object that is used for communicating with IoT Hub for Blob Storage related actions.
Method Details
close()
function close(): Promise<Disconnected>
Returns
Promise<Disconnected>
close(Callback<Disconnected>)
Closes the transport connection and destroys the client resources. Note: After calling this method the Client object cannot be reused.
function close(closeCallback: Callback<Disconnected>)
Parameters
- closeCallback
-
Callback<Disconnected>
fromAuthenticationProvider(AuthenticationProvider, any)
Creates an IoT Hub device client from the given authentication method and using the given transport type.
static function fromAuthenticationProvider(authenticationProvider: AuthenticationProvider, transportCtor: any): Client
Parameters
- authenticationProvider
-
AuthenticationProvider
Object used to obtain the authentication parameters for the IoT hub.
- transportCtor
-
any
Transport protocol used to connect to IoT hub.
Returns
fromConnectionString(string, any)
Creates an IoT Hub device client from the given connection string using the given transport type.
static function fromConnectionString(connStr: string, transportCtor: any): Client
Parameters
- connStr
-
string
A connection string which encapsulates "device connect" permissions on an IoT hub.
- transportCtor
-
any
A transport constructor.
Returns
fromSharedAccessSignature(string, any)
Creates an IoT Hub device client from the given shared access signature using the given transport type.
static function fromSharedAccessSignature(sharedAccessSignature: string, transportCtor: any): Client
Parameters
- sharedAccessSignature
-
string
A shared access signature which encapsulates "device connect" permissions on an IoT hub.
- transportCtor
-
any
Returns
getBlobSharedAccessSignature(string)
function getBlobSharedAccessSignature(blobName: string): Promise<UploadParams>
Parameters
- blobName
-
string
Returns
Promise<UploadParams>
getBlobSharedAccessSignature(string, Callback<UploadParams>)
The getBlobSharedAccessSignature gets the linked storage account SAS Token from IoT Hub
function getBlobSharedAccessSignature(blobName: string, callback: Callback<UploadParams>)
Parameters
- blobName
-
string
The name to use for the blob that will be created with the content of the stream.
- callback
-
Callback<UploadParams>
notifyBlobUploadStatus(string, boolean, number, string)
function notifyBlobUploadStatus(correlationId: string, isSuccess: boolean, statusCode: number, statusDescription: string): Promise<void>
Parameters
- correlationId
-
string
- isSuccess
-
boolean
- statusCode
-
number
- statusDescription
-
string
Returns
Promise<void>
notifyBlobUploadStatus(string, boolean, number, string, ErrorCallback)
The notifyBlobUploadStatus method sends IoT Hub the result of a blob upload.
function notifyBlobUploadStatus(correlationId: string, isSuccess: boolean, statusCode: number, statusDescription: string, callback: ErrorCallback)
Parameters
- correlationId
-
string
An id for correlating a upload status to a specific blob. Generated during the call to getBlobSharedAccessSignature.
- isSuccess
-
boolean
The success or failure status from the storage blob operation result.
- statusCode
-
number
The HTTP status code associated with the storage blob result.
- statusDescription
-
string
The description of the HTTP status code.
- callback
-
ErrorCallback
onDeviceMethod(string, (request: DeviceMethodRequest, response: DeviceMethodResponse) => void)
Registers a callback for a method named methodName.
function onDeviceMethod(methodName: string, callback: (request: DeviceMethodRequest, response: DeviceMethodResponse) => void)
Parameters
- methodName
-
string
Name of the method that will be handled by the callback
- callback
-
(request: DeviceMethodRequest, response: DeviceMethodResponse) => void
Function that shall be called whenever a method request for the method called methodName is received.
setOptions(DeviceClientOptions)
function setOptions(options: DeviceClientOptions): Promise<TransportConfigured>
Parameters
- options
- DeviceClientOptions
Returns
Promise<TransportConfigured>
setOptions(DeviceClientOptions, Callback<TransportConfigured>)
function setOptions(options: DeviceClientOptions, done: Callback<TransportConfigured>)
Parameters
- options
- DeviceClientOptions
- done
-
Callback<TransportConfigured>
uploadToBlob(string, Stream, number)
function uploadToBlob(blobName: string, stream: Stream, streamLength: number): Promise<void>
Parameters
- blobName
-
string
- stream
-
Stream
- streamLength
-
number
Returns
Promise<void>
uploadToBlob(string, Stream, number, ErrorCallback)
The uploadToBlob method uploads a stream to a blob.
function uploadToBlob(blobName: string, stream: Stream, streamLength: number, callback: ErrorCallback)
Parameters
- blobName
-
string
The name to use for the blob that will be created with the content of the stream.
- stream
-
Stream
The data to that should be uploaded to the blob.
- streamLength
-
number
The size of the data to that should be uploaded to the blob.
- callback
-
ErrorCallback
Inherited Method Details
abandon(Message)
function abandon(message: Message): Promise<MessageAbandoned>
Parameters
- message
-
Message
Returns
Promise<MessageAbandoned>
abandon(Message, Callback<MessageAbandoned>)
function abandon(message: Message, abandonCallback: Callback<MessageAbandoned>)
Parameters
- message
-
Message
- abandonCallback
-
Callback<MessageAbandoned>
addListener(string | symbol, (args: any[]) => void)
Alias for emitter.on(eventName, listener).
function addListener(eventName: string | symbol, listener: (args: any[]) => void): this
Parameters
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Returns
this
complete(Message)
function complete(message: Message): Promise<MessageCompleted>
Parameters
- message
-
Message
Returns
Promise<MessageCompleted>
complete(Message, Callback<MessageCompleted>)
function complete(message: Message, completeCallback: Callback<MessageCompleted>)
Parameters
- message
-
Message
- completeCallback
-
Callback<MessageCompleted>
emit(string | symbol, any[])
Synchronously calls each of the listeners registered for the event namedeventName, in the order they were registered, passing the supplied arguments
to each.
Returns true if the event had listeners, false otherwise.
const EventEmitter = require('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(eventName: string | symbol, args: any[]): boolean
Parameters
- eventName
-
string | symbol
- args
-
any[]
Returns
boolean
eventNames()
Returns an array listing the events for which the emitter has registered
listeners. The values in the array are strings or Symbols.
const EventEmitter = require('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(): Array<string | symbol>
Returns
Array<string | symbol>
getMaxListeners()
Returns the current max listener value for the EventEmitter which is either
set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.
function getMaxListeners(): number
Returns
number
getTwin()
getTwin(Callback<Twin>)
listenerCount(string | symbol)
Returns the number of listeners listening to the event named eventName.
function listenerCount(eventName: string | symbol): number
Parameters
- eventName
-
string | symbol
The name of the event being listened for
Returns
number
listeners(string | symbol)
Returns a copy of the array of listeners for the event named eventName.
server.on('connection', (stream) => {
console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]
function listeners(eventName: string | symbol): Function[]
Parameters
- eventName
-
string | symbol
Returns
Function[]
off(string | symbol, (args: any[]) => void)
Alias for emitter.removeListener().
function off(eventName: string | symbol, listener: (args: any[]) => void): this
Parameters
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Returns
this
on(string | symbol, (args: any[]) => void)
Adds the listener function to the end of the listeners array for the
event named eventName. No checks are made to see if the listener has
already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple
times.
server.on('connection', (stream) => {
console.log('someone connected!');
});
Returns a reference to the EventEmitter, so that calls can be chained.
By default, event listeners are invoked in the order they are added. Theemitter.prependListener() method can be used as an alternative to add the
event listener to the beginning of the listeners array.
const myEE = new EventEmitter();
myEE.on('foo', () => console.log('a'));
myEE.prependListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
// b
// a
function on(eventName: string | symbol, listener: (args: any[]) => void): this
Parameters
- eventName
-
string | symbol
The name of the event.
- listener
-
(args: any[]) => void
The callback function
Returns
this
once(string | symbol, (args: any[]) => void)
Adds a one-timelistener function for the event named eventName. The
next time eventName is triggered, this listener is removed and then invoked.
server.once('connection', (stream) => {
console.log('Ah, we have our first user!');
});
Returns a reference to the EventEmitter, so that calls can be chained.
By default, event listeners are invoked in the order they are added. Theemitter.prependOnceListener() method can be used as an alternative to add the
event listener to the beginning of the listeners array.
const myEE = new EventEmitter();
myEE.once('foo', () => console.log('a'));
myEE.prependOnceListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
// b
// a
function once(eventName: string | symbol, listener: (args: any[]) => void): this
Parameters
- eventName
-
string | symbol
The name of the event.
- listener
-
(args: any[]) => void
The callback function
Returns
this
open()
function open(): Promise<Connected>
Returns
Promise<Connected>
open(Callback<Connected>)
function open(openCallback: Callback<Connected>)
Parameters
- openCallback
-
Callback<Connected>
prependListener(string | symbol, (args: any[]) => void)
Adds the listener function to the beginning of the listeners array for the
event named eventName. No checks are made to see if the listener has
already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple
times.
server.prependListener('connection', (stream) => {
console.log('someone connected!');
});
Returns a reference to the EventEmitter, so that calls can be chained.
function prependListener(eventName: string | symbol, listener: (args: any[]) => void): this
Parameters
- eventName
-
string | symbol
The name of the event.
- listener
-
(args: any[]) => void
The callback function
Returns
this
prependOnceListener(string | symbol, (args: any[]) => void)
Adds a one-timelistener function for the event named eventName to the_beginning_ of the listeners array. The next time eventName is triggered, this
listener is removed, and then invoked.
server.prependOnceListener('connection', (stream) => {
console.log('Ah, we have our first user!');
});
Returns a reference to the EventEmitter, so that calls can be chained.
function prependOnceListener(eventName: string | symbol, listener: (args: any[]) => void): this
Parameters
- eventName
-
string | symbol
The name of the event.
- listener
-
(args: any[]) => void
The callback function
Returns
this
rawListeners(string | symbol)
Returns a copy of the array of listeners for the event named eventName,
including any wrappers (such as those created by .once()).
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(eventName: string | symbol): Function[]
Parameters
- eventName
-
string | symbol
Returns
Function[]
reject(Message)
function reject(message: Message): Promise<MessageRejected>
Parameters
- message
-
Message
Returns
Promise<MessageRejected>
reject(Message, Callback<MessageRejected>)
function reject(message: Message, rejectCallback: Callback<MessageRejected>)
Parameters
- message
-
Message
- rejectCallback
-
Callback<MessageRejected>
removeAllListeners(string | symbol)
Removes all listeners, or those of the specified eventName.
It is bad practice to remove listeners added elsewhere in the code,
particularly when the EventEmitter instance was created by some other
component or module (e.g. sockets or file streams).
Returns a reference to the EventEmitter, so that calls can be chained.
function removeAllListeners(event?: string | symbol): this
Parameters
- event
-
string | symbol
Returns
this
removeListener(string | symbol, (args: any[]) => void)
Removes the specified listener from the listener array for the event namedeventName.
const callback = (stream) => {
console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);
removeListener() will remove, at most, one instance of a listener from the
listener array. If any single listener has been added multiple times to the
listener array for the specified eventName, then removeListener() must be
called multiple times to remove each instance.
Once an event is emitted, all listeners attached to it at the
time of emitting are called in order. This implies that anyremoveListener() or removeAllListeners() calls after emitting and_before_ the last listener finishes execution will
not remove them fromemit() in progress. Subsequent events behave as expected.
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
Because listeners are managed using an internal array, calling this will
change the position indices of any listener registered after the listener
being removed. This will not impact the order in which listeners are called,
but it means that any copies of the listener array as returned by
the emitter.listeners() method will need to be recreated.
When a single function has been added as a handler multiple times for a single
event (as in the example below), removeListener() will remove the most
recently added instance. In the example the once('ping')listener is removed:
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');
Returns a reference to the EventEmitter, so that calls can be chained.
function removeListener(eventName: string | symbol, listener: (args: any[]) => void): this
Parameters
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Returns
this
sendEvent(Message)
function sendEvent(message: Message): Promise<MessageEnqueued>
Parameters
- message
-
Message
Returns
Promise<MessageEnqueued>
sendEvent(Message, Callback<MessageEnqueued>)
function sendEvent(message: Message, sendEventCallback: Callback<MessageEnqueued>)
Parameters
- message
-
Message
- sendEventCallback
-
Callback<MessageEnqueued>
sendEventBatch(Message[])
function sendEventBatch(messages: Message[]): Promise<MessageEnqueued>
Parameters
- messages
-
Message[]
Returns
Promise<MessageEnqueued>
sendEventBatch(Message[], Callback<MessageEnqueued>)
function sendEventBatch(messages: Message[], sendEventBatchCallback: Callback<MessageEnqueued>)
Parameters
- messages
-
Message[]
- sendEventBatchCallback
-
Callback<MessageEnqueued>
setMaxListeners(number)
By default EventEmitters will print a warning if more than 10 listeners are
added for a particular event. This is a useful default that helps finding
memory leaks. The emitter.setMaxListeners() method allows the limit to be
modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.
Returns a reference to the EventEmitter, so that calls can be chained.
function setMaxListeners(n: number): this
Parameters
- n
-
number
Returns
this
setRetryPolicy(RetryPolicy)
Sets the retry policy used by the client on all operations. The default is ExponentialBackoffWithJitter.
function setRetryPolicy(policy: RetryPolicy)
Parameters
- policy
-
RetryPolicy
The retry policy that should be used for all future operations.
setTransportOptions(any)
function setTransportOptions(options: any): Promise<TransportConfigured>
Parameters
- options
-
any
Returns
Promise<TransportConfigured>
setTransportOptions(any, Callback<TransportConfigured>)
function setTransportOptions(options: any, done: Callback<TransportConfigured>)
Parameters
- options
-
any
- done
-
Callback<TransportConfigured>
updateSharedAccessSignature(string, Callback<SharedAccessSignatureUpdated>)
function updateSharedAccessSignature(sharedAccessSignature: string, updateSasCallback?: Callback<SharedAccessSignatureUpdated>)
Parameters
- sharedAccessSignature
-
string
- updateSasCallback
-
Callback<SharedAccessSignatureUpdated>