ModuleClient 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
Methods
close() | |
close(Callback<Disconnected>) | Closes the transport connection and destroys the client resources. Note: After calling this method the ModuleClient object cannot be reused. |
from |
Creates an IoT Hub module 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 |
|
from |
Creates an IoT Hub module client by using configuration information from the environment.
If an environment variable called
|
from |
Creates an IoT Hub module client from the given shared access signature using the given transport type. |
invoke |
|
invoke |
Invokes a method on a downstream device or on another module on the same IoTEdge device. Please note that this feature only works when the module is being run as part of an IoTEdge device. |
invoke |
|
invoke |
|
on |
Registers a callback for a method named |
send |
|
send |
Sends an event to the given module output |
send |
|
send |
Sends an array of events to the given module output |
set |
|
set |
Passes options to 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 |
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 ModuleClient object cannot be reused.
function close(closeCallback: Callback<Disconnected>)
Parameters
- closeCallback
-
Callback<Disconnected>
fromAuthenticationProvider(AuthenticationProvider, any)
Creates an IoT Hub module client from the given authentication method and using the given transport type.
static function fromAuthenticationProvider(authenticationProvider: AuthenticationProvider, transportCtor: any): ModuleClient
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): ModuleClient
Parameters
- connStr
-
string
A connection string which encapsulates "device connect" permissions on an IoT hub.
- transportCtor
-
any
A transport constructor.
Returns
fromEnvironment(any)
static function fromEnvironment(transportCtor: any): Promise<ModuleClient>
Parameters
- transportCtor
-
any
Returns
Promise<ModuleClient>
fromEnvironment(any, Callback<ModuleClient>)
Creates an IoT Hub module client by using configuration information from the environment.
If an environment variable called EdgeHubConnectionString
or IotHubConnectionString
exists, then that value is used and behavior is identical
to calling fromConnectionString
passing that in. If those environment variables do not exist then the following variables MUST be defined:
- IOTEDGE_WORKLOADURI URI for iotedged's workload API
- IOTEDGE_DEVICEID Device identifier
- IOTEDGE_MODULEID Module identifier
- IOTEDGE_MODULEGENERATIONID Module generation identifier
- IOTEDGE_IOTHUBHOSTNAME IoT Hub host name
- IOTEDGE_AUTHSCHEME Authentication scheme to use; must be "sasToken"
static function fromEnvironment(transportCtor: any, callback: Callback<ModuleClient>)
Parameters
- transportCtor
-
any
Transport protocol used to connect to IoT hub.
- callback
-
Callback<ModuleClient>
fromSharedAccessSignature(string, any)
Creates an IoT Hub module client from the given shared access signature using the given transport type.
static function fromSharedAccessSignature(sharedAccessSignature: string, transportCtor: any): ModuleClient
Parameters
- sharedAccessSignature
-
string
A shared access signature which encapsulates "device connect" permissions on an IoT hub.
- transportCtor
-
any
Returns
invokeMethod(string, MethodParams)
function invokeMethod(deviceId: string, methodParams: MethodParams): Promise<MethodResult>
Parameters
- deviceId
-
string
- methodParams
- MethodParams
Returns
Promise<MethodResult>
invokeMethod(string, MethodParams, Callback<MethodResult>)
Invokes a method on a downstream device or on another module on the same IoTEdge device. Please note that this feature only works when the module is being run as part of an IoTEdge device.
function invokeMethod(deviceId: string, methodParams: MethodParams, callback: Callback<MethodResult>)
Parameters
- deviceId
-
string
target device identifier
- methodParams
- MethodParams
parameters of the direct method call
- callback
-
Callback<MethodResult>
invokeMethod(string, string, MethodParams)
function invokeMethod(deviceId: string, moduleId: string, methodParams: MethodParams): Promise<MethodResult>
Parameters
- deviceId
-
string
- moduleId
-
string
- methodParams
- MethodParams
Returns
Promise<MethodResult>
invokeMethod(string, string, MethodParams, Callback<MethodResult>)
function invokeMethod(deviceId: string, moduleId: string, methodParams: MethodParams, callback: Callback<MethodResult>)
Parameters
- deviceId
-
string
- moduleId
-
string
- methodParams
- MethodParams
- callback
-
Callback<MethodResult>
onMethod(string, DoubleValueCallback<DeviceMethodRequest, DeviceMethodResponse>)
Registers a callback for a method named methodName
.
function onMethod(methodName: string, callback: DoubleValueCallback<DeviceMethodRequest, DeviceMethodResponse>)
Parameters
- methodName
-
string
Name of the method that will be handled by the callback
- callback
-
DoubleValueCallback<DeviceMethodRequest, DeviceMethodResponse>
Function that shall be called whenever a method request for the method called methodName
is received.
sendOutputEvent(string, Message)
function sendOutputEvent(outputName: string, message: Message): Promise<MessageEnqueued>
Parameters
- outputName
-
string
- message
-
Message
Returns
Promise<MessageEnqueued>
sendOutputEvent(string, Message, Callback<MessageEnqueued>)
Sends an event to the given module output
function sendOutputEvent(outputName: string, message: Message, callback: Callback<MessageEnqueued>)
Parameters
- outputName
-
string
Name of the output to send the event to
- message
-
Message
Message to send to the given output
- callback
-
Callback<MessageEnqueued>
sendOutputEventBatch(string, Message[])
function sendOutputEventBatch(outputName: string, messages: Message[]): Promise<MessageEnqueued>
Parameters
- outputName
-
string
- messages
-
Message[]
Returns
Promise<MessageEnqueued>
sendOutputEventBatch(string, Message[], Callback<MessageEnqueued>)
Sends an array of events to the given module output
function sendOutputEventBatch(outputName: string, messages: Message[], callback: Callback<MessageEnqueued>)
Parameters
- outputName
-
string
Name of the output to send the events to
- messages
-
Message[]
- callback
-
Callback<MessageEnqueued>
setOptions(DeviceClientOptions)
function setOptions(options: DeviceClientOptions): Promise<TransportConfigured>
Parameters
- options
- DeviceClientOptions
Returns
Promise<TransportConfigured>
setOptions(DeviceClientOptions, Callback<TransportConfigured>)
Passes options to the ModuleClient
object that can be used to configure the transport.
function setOptions(options: DeviceClientOptions, done: Callback<TransportConfigured>)
Parameters
- options
- DeviceClientOptions
A DeviceClientOptions object.
- done
-
Callback<TransportConfigured>
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 Symbol
s.
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 eventName
and 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 eventName
and 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 EventEmitter
s 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>