SharedAccessKeyAuthenticationProvider class
يوفر كائن AuthenticationProvider يمكن إنشاؤه ببساطة باستخدام سلسلة اتصال ثم يستخدمه عميل الجهاز وينقل للمصادقة مع مثيل مركز Azure IoT.
يهتم الكائن SharedAccessKeyAuthenticationProvider بإنشاء رموز مميزة لتوقيع الوصول المشترك على إيقاع منتظم ويبعث الحدث newTokenAvailable للنقل لتجديد بيانات الاعتماد الخاصة بهم باستخدام مثيل مركز Azure IoT والبقاء على اتصال.
- يمتد
-
EventEmitter
الخصائص
| type |
الأساليب
| from |
إنشاء |
| get |
|
| get |
يتم استخدام هذا الأسلوب بواسطة عمليات النقل للحصول على أحدث بيانات اعتماد الجهاز في شكل كائن |
| set |
يسمح هذا الأسلوب للمتصل بتعيين قيم جديدة لتجديد المصادقة. تكتمل هذه الدالة بشكل متزامن، ولكن، ستتسبب في حدوث الإجراءات بشكل غير متزامن. إذا كان الموفر يقوم بالفعل بتجديدات الرمز المميز، على سبيل المثال - إذا تم إجراء اتصال شبكة اتصال، فإن استدعاء هذه الدالة سيؤدي إلى إجراء تجديد جديد على الفور تقريبا. اعتمادا على البروتوكول، قد يتسبب هذا في حدوث قطع اتصال وإعادة الاتصال. ومع ذلك، إذا لم تحدث التجديدات حاليا، فإننا ببساطة نحفظ القيم الجديدة لاستخدامها لاحقا. |
| stop() | إيقاف المؤقت المستخدم للتجديد إلى رمز SAS المميز. |
الأساليب المتوارثة
| 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 |
يتم استدعاء هذه
|
تفاصيل الخاصية
type
type: AuthenticationType
قيمة الخاصية
AuthenticationType
تفاصيل الأسلوب
fromConnectionString(string, number, number)
إنشاء SharedAccessKeyAuthenticationProvider جديد من سلسلة اتصال
static function fromConnectionString(connectionString: string, tokenValidTimeInSeconds?: number, tokenRenewalMarginInSeconds?: number): SharedAccessKeyAuthenticationProvider
المعلمات
- connectionString
-
string
سلسلة اتصال جهاز تحتوي على المعلمات المطلوبة للمصادقة مع مركز IoT.
- tokenValidTimeInSeconds
-
number
[اختياري] عدد الثوانى التي من المفترض أن يكون الرمز المميز صالحا لها.
- tokenRenewalMarginInSeconds
-
number
[اختياري] عدد الثوانى قبل نهاية فترة الصلاحية التي يجب على SharedAccessKeyAuthenticationProvider خلالها تجديد الرمز المميز.
المرتجعات
getDeviceCredentials()
function getDeviceCredentials(): Promise<TransportConfig>
المرتجعات
Promise<TransportConfig>
getDeviceCredentials(Callback<TransportConfig>)
يتم استخدام هذا الأسلوب بواسطة عمليات النقل للحصول على أحدث بيانات اعتماد الجهاز في شكل كائن TransportConfig.
function getDeviceCredentials(callback?: Callback<TransportConfig>)
المعلمات
- callback
-
Callback<TransportConfig>
الدالة الاختيارية التي سيتم استدعاؤها إما مع خطأ أو مجموعة من بيانات اعتماد الجهاز التي يمكن استخدامها للمصادقة مع مركز IoT.
setTokenRenewalValues(number, number)
يسمح هذا الأسلوب للمتصل بتعيين قيم جديدة لتجديد المصادقة.
تكتمل هذه الدالة بشكل متزامن، ولكن، ستتسبب في حدوث الإجراءات بشكل غير متزامن. إذا كان الموفر يقوم بالفعل بتجديدات الرمز المميز، على سبيل المثال - إذا تم إجراء اتصال شبكة اتصال، فإن استدعاء هذه الدالة سيؤدي إلى إجراء تجديد جديد على الفور تقريبا. اعتمادا على البروتوكول، قد يتسبب هذا في حدوث قطع اتصال وإعادة الاتصال. ومع ذلك، إذا لم تحدث التجديدات حاليا، فإننا ببساطة نحفظ القيم الجديدة لاستخدامها لاحقا.
function setTokenRenewalValues(tokenValidTimeInSeconds: number, tokenRenewalMarginInSeconds: number)
المعلمات
- tokenValidTimeInSeconds
-
number
عدد الثوانى التي من المفترض أن يكون الرمز المميز صالحا لها.
- tokenRenewalMarginInSeconds
-
number
عدد الثوانى قبل نهاية فترة الصلاحية التي يجب على SharedAccessKeyAuthenticationProvider خلالها تجديد الرمز المميز.
stop()
إيقاف المؤقت المستخدم للتجديد إلى رمز SAS المميز.
function stop()
تفاصيل الأساليب المتوارثة
addListener<E>(string | symbol, (args: any[]) => void)
الاسم المستعار ل emitter.on(eventName, listener).
function addListener<E>(eventName: string | symbol, listener: (args: any[]) => void): SharedAccessKeyAuthenticationProvider
المعلمات
- 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): SharedAccessKeyAuthenticationProvider
المعلمات
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
المرتجعات
موروث من EventEmitter.off
on<E>(string | symbol, (args: any[]) => void)
يضيف الدالة listener إلى نهاية صفيف المستمعين للحدث المسمى eventName. لا يتم إجراء أي فحوصات لمعرفة ما إذا كان قد تمت إضافة listener بالفعل. ستؤدي المكالمات المتعددة التي تمر بنفس المجموعة من eventNamelistener إلى إضافة 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): SharedAccessKeyAuthenticationProvider
المعلمات
- 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): SharedAccessKeyAuthenticationProvider
المعلمات
- eventName
-
string | symbol
اسم الحدث.
- listener
-
(args: any[]) => void
دالة رد الاتصال
المرتجعات
موروث من EventEmitter.once
prependListener<E>(string | symbol, (args: any[]) => void)
إضافة الدالة listener بالفعل. ستؤدي المكالمات المتعددة التي تمر بنفس المجموعة من eventNamelistener إلى إضافة listener واستدعاؤها عدة مرات.
server.prependListener('connection', (stream) => {
console.log('someone connected!');
});
إرجاع مرجع إلى EventEmitter، بحيث يمكن ربط الاستدعاءات.
function prependListener<E>(eventName: string | symbol, listener: (args: any[]) => void): SharedAccessKeyAuthenticationProvider
المعلمات
- 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): SharedAccessKeyAuthenticationProvider
المعلمات
- 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): SharedAccessKeyAuthenticationProvider
المعلمات
- 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()بعد الإرسال وقبل أن ينهي آخر مستمع التنفيذ لن تزيلها من 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): SharedAccessKeyAuthenticationProvider
المعلمات
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
المرتجعات
موروث من EventEmitter.removeListener
setMaxListeners(number)
بشكل افتراضي، ستقوم EventEmitters بطباعة تحذير إذا تمت إضافة أكثر من 10 وحدة استماع لحدث معين. هذا افتراضي مفيد يساعد في العثور على تسرب الذاكرة. يسمح الأسلوب emitter.setMaxListeners() بتعديل الحد لهذا المثيل EventEmitter المحدد. يمكن تعيين القيمة إلى Infinity (أو 0) للإشارة إلى عدد غير محدود من المستمعين.
إرجاع مرجع إلى EventEmitter، بحيث يمكن ربط الاستدعاءات.
function setMaxListeners(n: number): SharedAccessKeyAuthenticationProvider
المعلمات
- 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@129