다음을 통해 공유


Client class

Azure IoT Hub와 디바이스를 연결하는 데 사용되는 IoT Hub 디바이스 클라이언트입니다.

SDK 사용자는 팩터리 메서드 중 하나를 호출해야 합니다. fromConnectionString 또는 IoT Hub 디바이스 클라이언트를 만들려면 SharedAccessSignature .

Extends

InternalClient

생성자

Client(DeviceTransport, string, BlobUploadClient, FileUploadInterface)

상속된 속성

captureRejections

값: 부울

모든 새 captureRejections 개체에서 기본 EventEmitter 옵션을 변경합니다.

captureRejectionSymbol

값: Symbol.for('nodejs.rejection')

사용자 지정 rejection handler작성하는 방법을 참조하세요.

defaultMaxListeners

기본적으로 단일 이벤트에 대해 최대 10 수신기를 등록할 수 있습니다. 이 제한은 EventEmitter 메서드를 사용하여 개별 emitter.setMaxListeners(n) 인스턴스에 대해 변경할 수 있습니다. 모든 인스턴스에 기본값을 변경하려면 속성을 사용할 수 있습니다. 이 값이 양수가 아니면 RangeError throw됩니다.

변경 내용이 변경되기 전에 만든 인스턴스를 포함하여 모든 인스턴스에 영향을 주므로 설정할 때는 주의해야 합니다. 그러나 emitter.setMaxListeners(n) 호출은 여전히 events.defaultMaxListeners보다 우선합니다.

이것은 어려운 제한이 아닙니다. EventEmitter 인스턴스는 더 많은 수신기를 추가할 수 있지만 "가능한 EventEmitter 메모리 누수"가 감지되었음을 나타내는 추적 경고를 stderr에 출력합니다. 단일 EventEmitter경우 emitter.getMaxListeners()emitter.setMaxListeners() 메서드를 사용하여 이 경고를 일시적으로 방지할 수 있습니다.

import { EventEmitter } from 'node:events';
const emitter = new EventEmitter();
emitter.setMaxListeners(emitter.getMaxListeners() + 1);
emitter.once('event', () => {
  // do stuff
  emitter.setMaxListeners(Math.max(emitter.getMaxListeners() - 1, 0));
});

--trace-warnings 명령줄 플래그를 사용하여 이러한 경고에 대한 스택 추적을 표시할 수 있습니다.

내보낸 경고는 process.on('warning') 사용하여 검사할 수 있으며 이벤트 송신기 인스턴스, 이벤트 이름 및 연결된 수신기 수를 각각 참조하는 추가 emitter, typecount 속성을 갖습니다. 해당 name 속성은 'MaxListenersExceededWarning'.

errorMonitor

이 기호는 'error' 이벤트 모니터링에 대해서만 수신기를 설치하는 데 사용됩니다. 이 기호를 사용하여 설치된 수신기는 일반 'error' 수신기가 호출되기 전에 호출됩니다.

이 기호를 사용하여 수신기를 설치해도 'error' 이벤트가 내보내지면 동작이 변경되지 않습니다. 따라서 일반 'error' 수신기가 설치되지 않은 경우에도 프로세스가 중단됩니다.

메서드

close()
close(Callback<Disconnected>)

전송 연결을 닫고 클라이언트 리소스를 제거합니다.

참고: 이 메서드를 호출한 후에는 Client 개체를 다시 사용할 수 없습니다.

fromAuthenticationProvider(AuthenticationProvider, any)

지정된 인증 방법 및 지정된 전송 유형을 사용하여 IoT Hub 디바이스 클라이언트를 만듭니다.

fromConnectionString(string, any)

지정된 전송 형식을 사용하여 지정된 연결 문자열에서 IoT Hub 디바이스 클라이언트를 만듭니다.

fromSharedAccessSignature(string, any)

지정된 전송 유형을 사용하여 지정된 공유 액세스 서명에서 IoT Hub 디바이스 클라이언트를 만듭니다.

getBlobSharedAccessSignature(string)
getBlobSharedAccessSignature(string, Callback<UploadParams>)

getBlobSharedAccessSignature IoT Hub에서 연결된 스토리지 계정 SAS 토큰을 가져옵니다.

notifyBlobUploadStatus(string, boolean, number, string)
notifyBlobUploadStatus(string, boolean, number, string, ErrorCallback)

notifyBlobUploadStatus 메서드는 Blob 업로드 결과를 IoT Hub에 보냅니다.

onDeviceMethod(string, (request: DeviceMethodRequest, response: DeviceMethodResponse) => void)

methodName메서드에 대한 콜백을 등록합니다.

setOptions(DeviceClientOptions)
setOptions(DeviceClientOptions, Callback<TransportConfigured>)
uploadToBlob(string, Stream, number)
uploadToBlob(string, Stream, number, ErrorCallback)

uploadToBlob 메서드는 Blob에 스트림을 업로드합니다.

상속된 메서드

abandon(Message)
abandon(Message, Callback<MessageAbandoned>)
addAbortListener(AbortSignal, (event: Event) => void)

제공된 abortsignal 이벤트를 한 번 수신합니다.

중단 신호에서 abort 이벤트를 수신 대기하는 것은 안전하지 않으며 신호가 있는 다른 타사에서 e.stopImmediatePropagation()호출할 수 있으므로 리소스 누수로 이어질 수 있습니다. 불행히도 Node.js 웹 표준을 위반하기 때문에 이를 변경할 수 없습니다. 또한 원래 API를 사용하면 수신기를 쉽게 제거할 수 있습니다.

이 API를 사용하면 AbortSignal 수신기가 실행되지 않도록 이벤트를 수신 대기하여 이러한 두 가지 문제를 해결하여 Node.js API에서 stopImmediatePropagation안전하게 사용할 수 있습니다.

더 쉽게 구독을 취소할 수 있도록 삭제 가능 항목을 반환합니다.

import { addAbortListener } from 'node:events';

function example(signal) {
  let disposable;
  try {
    signal.addEventListener('abort', (e) => e.stopImmediatePropagation());
    disposable = addAbortListener(signal, (e) => {
      // Do something when signal is aborted.
    });
  } finally {
    disposable?.[Symbol.dispose]();
  }
}
addListener<K>(string | symbol, (args: any[]) => void)

에 대한 별칭입니다 emitter.on(eventName, listener).

complete(Message)
complete(Message, Callback<MessageCompleted>)
emit<K>(string | symbol, AnyRest)

등록된 순서대로 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
eventNames()

이미터가 수신기를 등록한 이벤트를 나열하는 배열을 반환합니다. 배열의 값은 문자열 또는 Symbol.

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) ]
getEventListeners(EventEmitter<DefaultEventMap> | EventTarget, string | symbol)

eventName이벤트에 대한 수신기 배열의 복사본을 반환합니다.

EventEmitter경우 이 동작은 방출기에서 .listeners 호출하는 것과 정확히 동일합니다.

EventTarget이벤트 대상에 대한 이벤트 수신기를 가져오는 유일한 방법입니다. 디버깅 및 진단 용도로 유용합니다.

import { getEventListeners, EventEmitter } from 'node:events';

{
  const ee = new EventEmitter();
  const listener = () => console.log('Events are fun');
  ee.on('foo', listener);
  console.log(getEventListeners(ee, 'foo')); // [ [Function: listener] ]
}
{
  const et = new EventTarget();
  const listener = () => console.log('Events are fun');
  et.addEventListener('foo', listener);
  console.log(getEventListeners(et, 'foo')); // [ [Function: listener] ]
}
getMaxListeners()

설정되거나 기본값이 defaultMaxListeners 대한 현재 최대 수신기 값을 반환합니다.

getMaxListeners(EventEmitter<DefaultEventMap> | EventTarget)

현재 설정된 최대 수신기 양을 반환합니다.

EventEmitter경우 이 동작은 방출기에서 .getMaxListeners 호출하는 것과 정확히 동일합니다.

EventTarget경우 이벤트 대상에 대한 최대 이벤트 수신기를 가져오는 유일한 방법입니다. 단일 EventTarget의 이벤트 처리기 수가 최대 집합을 초과하면 EventTarget에서 경고를 출력합니다.

import { getMaxListeners, setMaxListeners, EventEmitter } from 'node:events';

{
  const ee = new EventEmitter();
  console.log(getMaxListeners(ee)); // 10
  setMaxListeners(11, ee);
  console.log(getMaxListeners(ee)); // 11
}
{
  const et = new EventTarget();
  console.log(getMaxListeners(et)); // 10
  setMaxListeners(11, et);
  console.log(getMaxListeners(et)); // 11
}
getTwin()
getTwin(Callback<Twin>)
listenerCount(EventEmitter<DefaultEventMap>, string | symbol)

지정된 eventName등록된 지정된 emitter 대한 수신기 수를 반환하는 클래스 메서드입니다.

import { EventEmitter, listenerCount } from 'node:events';

const myEmitter = new EventEmitter();
myEmitter.on('event', () => {});
myEmitter.on('event', () => {});
console.log(listenerCount(myEmitter, 'event'));
// Prints: 2
listenerCount<K>(string | symbol, Function)

eventName이벤트를 수신 대기하는 수신기 수를 반환합니다. listener 제공된 경우 수신기가 이벤트 수신기 목록에서 발견된 횟수를 반환합니다.

listeners<K>(string | symbol)

eventName이벤트에 대한 수신기 배열의 복사본을 반환합니다.

server.on('connection', (stream) => {
  console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]
off<K>(string | symbol, (args: any[]) => void)

에 대한 별칭입니다 emitter.removeListener().

on(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterIteratorOptions)
import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

// Emit later on
process.nextTick(() => {
  ee.emit('foo', 'bar');
  ee.emit('foo', 42);
});

for await (const event of on(ee, 'foo')) {
  // The execution of this inner block is synchronous and it
  // processes one event at a time (even with await). Do not use
  // if concurrent execution is required.
  console.log(event); // prints ['bar'] [42]
}
// Unreachable here

AsyncIterator 이벤트를 반복하는 eventName 반환합니다. EventEmitter 'error'내보내면 throw됩니다. 루프를 종료할 때 모든 수신기를 제거합니다. 각 반복에서 반환되는 value 내보낸 이벤트 인수로 구성된 배열입니다.

AbortSignal 사용하여 이벤트 대기를 취소할 수 있습니다.

import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ac = new AbortController();

(async () => {
  const ee = new EventEmitter();

  // Emit later on
  process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
  });

  for await (const event of on(ee, 'foo', { signal: ac.signal })) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
  }
  // Unreachable here
})();

process.nextTick(() => ac.abort());

close 옵션을 사용하여 반복을 종료할 이벤트 이름 배열을 지정합니다.

import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

// Emit later on
process.nextTick(() => {
  ee.emit('foo', 'bar');
  ee.emit('foo', 42);
  ee.emit('close');
});

for await (const event of on(ee, 'foo', { close: ['close'] })) {
  console.log(event); // prints ['bar'] [42]
}
// the loop will exit after 'close' is emitted
console.log('done'); // prints 'done'
on(EventTarget, string, StaticEventEmitterIteratorOptions)
on<K>(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
once(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterOptions)

Promise 지정된 이벤트를 내보내거나 대기하는 동안 EventEmitterEventEmitter 내보내는 경우 거부되는 'error' 만듭니다. Promise 지정된 이벤트에 내보낸 모든 인수의 배열로 확인됩니다.

이 메서드는 의도적으로 제네릭이며 특별한 이벤트 의미 체계가 없고 'error' 이벤트를 수신 대기하지 않는 웹 플랫폼 'error' 인터페이스에서 작동합니다.

import { once, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

process.nextTick(() => {
  ee.emit('myevent', 42);
});

const [value] = await once(ee, 'myevent');
console.log(value);

const err = new Error('kaboom');
process.nextTick(() => {
  ee.emit('error', err);
});

try {
  await once(ee, 'myevent');
} catch (err) {
  console.error('error happened', err);
}

'error' 이벤트의 특수 처리는 events.once() 다른 이벤트를 기다리는 데 사용되는 경우에만 사용됩니다. events.once() 'error' 이벤트 자체를 기다리는 데 사용되는 경우 특별한 처리 없이 다른 종류의 이벤트로 처리됩니다.

import { EventEmitter, once } from 'node:events';

const ee = new EventEmitter();

once(ee, 'error')
  .then(([err]) => console.log('ok', err.message))
  .catch((err) => console.error('error', err.message));

ee.emit('error', new Error('boom'));

// Prints: ok boom

AbortSignal 사용하여 이벤트 대기를 취소할 수 있습니다.

import { EventEmitter, once } from 'node:events';

const ee = new EventEmitter();
const ac = new AbortController();

async function foo(emitter, event, signal) {
  try {
    await once(emitter, event, { signal });
    console.log('event emitted!');
  } catch (error) {
    if (error.name === 'AbortError') {
      console.error('Waiting for the event was canceled!');
    } else {
      console.error('There was an error', error.message);
    }
  }
}

foo(ee, 'foo', ac.signal);
ac.abort(); // Abort waiting for the event
ee.emit('foo'); // Prints: Waiting for the event was canceled!
once(EventTarget, string, StaticEventEmitterOptions)
once<K>(string | symbol, (args: any[]) => void)

이벤트에 대한 listenereventName 함수를 추가합니다. 다음에 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
open()
open(Callback<Connected>)
prependListener<K>(string | symbol, (args: any[]) => void)

이벤트에 대한 수신기 배열의 시작 함수를 추가합니다. listener 이미 추가되었는지 확인하기 위한 검사는 수행되지 않습니다. eventNamelistener 동일한 조합을 전달하는 여러 호출은 listener 여러 번 추가되고 호출됩니다.

server.prependListener('connection', (stream) => {
  console.log('someone connected!');
});

호출을 연결할 수 있도록 EventEmitter대한 참조를 반환합니다.

prependOnceListener<K>(string | symbol, (args: any[]) => void)

수신기 배열의 시작 이벤트에 대한 일회성 함수를 추가합니다. 다음에 eventName 트리거되면 이 수신기가 제거된 다음 호출됩니다.

server.prependOnceListener('connection', (stream) => {
  console.log('Ah, we have our first user!');
});

호출을 연결할 수 있도록 EventEmitter대한 참조를 반환합니다.

rawListeners<K>(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');
reject(Message)
reject(Message, Callback<MessageRejected>)
removeAllListeners(string | symbol)

모든 수신기 또는 지정된 eventName제거합니다.

특히 다른 구성 요소 또는 모듈(예: 소켓 또는 파일 스트림)에서 EventEmitter 인스턴스를 만든 경우 코드의 다른 위치에 추가된 수신기를 제거하는 것은 잘못된 방법입니다.

호출을 연결할 수 있도록 EventEmitter대한 참조를 반환합니다.

removeListener<K>(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() 여러 번 호출해야 합니다.

이벤트가 내보내지면 내보내기 시 연결된 모든 수신기가 순서대로 호출됩니다. 이는 마지막 수신기가 실행을 완료하기 전에 내보내고 또는 호출이 진행 중인 제거되지 않음을 의미합니다. 후속 이벤트는 예상대로 동작합니다.

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대한 참조를 반환합니다.

sendEvent(Message)
sendEvent(Message, Callback<MessageEnqueued>)
sendEventBatch(Message[])
sendEventBatch(Message[], Callback<MessageEnqueued>)
setMaxListeners(number)

기본적으로 EventEmitter특정 이벤트에 대해 10 개 이상의 수신기가 추가되면 경고를 출력합니다. 이는 메모리 누수 찾기에 도움이 되는 유용한 기본값입니다. emitter.setMaxListeners() 메서드를 사용하면 이 특정 EventEmitter 인스턴스에 대한 제한을 수정할 수 있습니다. 값을 Infinity(또는 0)로 설정하여 무제한 수신기를 나타낼 수 있습니다.

호출을 연결할 수 있도록 EventEmitter대한 참조를 반환합니다.

setMaxListeners(number, (EventEmitter<DefaultEventMap> | EventTarget)[])
import { setMaxListeners, EventEmitter } from 'node:events';

const target = new EventTarget();
const emitter = new EventEmitter();

setMaxListeners(5, target, emitter);
setRetryPolicy(RetryPolicy)

모든 작업에서 클라이언트가 사용하는 재시도 정책을 설정합니다. 기본값은 ExponentialBackoffWithJitter.

setTransportOptions(any)
setTransportOptions(any, Callback<TransportConfigured>)
updateSharedAccessSignature(string, Callback<SharedAccessSignatureUpdated>)
[captureRejectionSymbol]<K>(Error, string | symbol, AnyRest)

생성자 세부 정보

Client(DeviceTransport, string, BlobUploadClient, FileUploadInterface)

new Client(transport: DeviceTransport, connStr?: string, blobUploadClient?: BlobUploadClient, fileUploadApi?: FileUploadInterface)

매개 변수

transport
DeviceTransport

전송 개체에 필요한 인터페이스(예: http)를 구현하는 개체입니다.

connStr

string

연결 문자열(선택 사항: 제공되지 않은 경우 SharedAccessSignature 토큰을 직접 설정하려면 updateSharedAccessSignature를 호출해야 함).

blobUploadClient

BlobUploadClient

Blob에 스트림을 업로드할 수 있는 개체입니다.

fileUploadApi

FileUploadInterface

Blob Storage 관련 작업에 대해 IoT Hub와 통신하는 데 사용되는 개체입니다.

상속된 속성 세부 정보

captureRejections

값: 부울

모든 새 captureRejections 개체에서 기본 EventEmitter 옵션을 변경합니다.

static captureRejections: boolean

속성 값

boolean

InternalClient.captureRejections에서 상속된

captureRejectionSymbol

값: Symbol.for('nodejs.rejection')

사용자 지정 rejection handler작성하는 방법을 참조하세요.

static captureRejectionSymbol: typeof captureRejectionSymbol

속성 값

typeof captureRejectionSymbol

InternalClient.captureRejectionSymbol에서 상속된

defaultMaxListeners

기본적으로 단일 이벤트에 대해 최대 10 수신기를 등록할 수 있습니다. 이 제한은 EventEmitter 메서드를 사용하여 개별 emitter.setMaxListeners(n) 인스턴스에 대해 변경할 수 있습니다. 모든 인스턴스에 기본값을 변경하려면 속성을 사용할 수 있습니다. 이 값이 양수가 아니면 RangeError throw됩니다.

변경 내용이 변경되기 전에 만든 인스턴스를 포함하여 모든 인스턴스에 영향을 주므로 설정할 때는 주의해야 합니다. 그러나 emitter.setMaxListeners(n) 호출은 여전히 events.defaultMaxListeners보다 우선합니다.

이것은 어려운 제한이 아닙니다. EventEmitter 인스턴스는 더 많은 수신기를 추가할 수 있지만 "가능한 EventEmitter 메모리 누수"가 감지되었음을 나타내는 추적 경고를 stderr에 출력합니다. 단일 EventEmitter경우 emitter.getMaxListeners()emitter.setMaxListeners() 메서드를 사용하여 이 경고를 일시적으로 방지할 수 있습니다.

import { EventEmitter } from 'node:events';
const emitter = new EventEmitter();
emitter.setMaxListeners(emitter.getMaxListeners() + 1);
emitter.once('event', () => {
  // do stuff
  emitter.setMaxListeners(Math.max(emitter.getMaxListeners() - 1, 0));
});

--trace-warnings 명령줄 플래그를 사용하여 이러한 경고에 대한 스택 추적을 표시할 수 있습니다.

내보낸 경고는 process.on('warning') 사용하여 검사할 수 있으며 이벤트 송신기 인스턴스, 이벤트 이름 및 연결된 수신기 수를 각각 참조하는 추가 emitter, typecount 속성을 갖습니다. 해당 name 속성은 'MaxListenersExceededWarning'.

static defaultMaxListeners: number

속성 값

number

InternalClient.defaultMaxListeners에서 상속된

errorMonitor

이 기호는 'error' 이벤트 모니터링에 대해서만 수신기를 설치하는 데 사용됩니다. 이 기호를 사용하여 설치된 수신기는 일반 'error' 수신기가 호출되기 전에 호출됩니다.

이 기호를 사용하여 수신기를 설치해도 'error' 이벤트가 내보내지면 동작이 변경되지 않습니다. 따라서 일반 'error' 수신기가 설치되지 않은 경우에도 프로세스가 중단됩니다.

static errorMonitor: typeof errorMonitor

속성 값

typeof errorMonitor

InternalClient.errorMonitor에서 상속된

메서드 세부 정보

close()

function close(): Promise<Disconnected>

반환

Promise<Disconnected>

close(Callback<Disconnected>)

전송 연결을 닫고 클라이언트 리소스를 제거합니다.

참고: 이 메서드를 호출한 후에는 Client 개체를 다시 사용할 수 없습니다.

function close(closeCallback?: Callback<Disconnected>)

매개 변수

closeCallback

Callback<Disconnected>

전송 연결이 끊어지고 클라이언트가 닫힌 후 호출할 선택적 함수입니다.

fromAuthenticationProvider(AuthenticationProvider, any)

지정된 인증 방법 및 지정된 전송 유형을 사용하여 IoT Hub 디바이스 클라이언트를 만듭니다.

static function fromAuthenticationProvider(authenticationProvider: AuthenticationProvider, transportCtor: any): Client

매개 변수

authenticationProvider

AuthenticationProvider

IoT Hub에 대한 인증 매개 변수를 가져오는 데 사용되는 개체입니다.

transportCtor

any

IoT Hub에 연결하는 데 사용되는 전송 프로토콜입니다.

반환

fromConnectionString(string, any)

지정된 전송 형식을 사용하여 지정된 연결 문자열에서 IoT Hub 디바이스 클라이언트를 만듭니다.

static function fromConnectionString(connStr: string, transportCtor: any): Client

매개 변수

connStr

string

IoT Hub에 대한 "디바이스 연결" 권한을 캡슐화하는 연결 문자열입니다.

transportCtor

any

전송 생성자입니다.

반환

fromSharedAccessSignature(string, any)

지정된 전송 유형을 사용하여 지정된 공유 액세스 서명에서 IoT Hub 디바이스 클라이언트를 만듭니다.

static function fromSharedAccessSignature(sharedAccessSignature: string, transportCtor: any): Client

매개 변수

sharedAccessSignature

string

IoT Hub에 대한 "디바이스 연결" 권한을 캡슐화하는 공유 액세스 서명입니다.

transportCtor

any

반환

getBlobSharedAccessSignature(string)

function getBlobSharedAccessSignature(blobName: string): Promise<UploadParams>

매개 변수

blobName

string

반환

Promise<UploadParams>

getBlobSharedAccessSignature(string, Callback<UploadParams>)

getBlobSharedAccessSignature IoT Hub에서 연결된 스토리지 계정 SAS 토큰을 가져옵니다.

function getBlobSharedAccessSignature(blobName: string, callback?: Callback<UploadParams>)

매개 변수

blobName

string

스트림의 콘텐츠로 만들 Blob에 사용할 이름입니다.

callback

Callback<UploadParams>

업로드가 완료되면 호출할 선택적 콜백입니다.

notifyBlobUploadStatus(string, boolean, number, string)

function notifyBlobUploadStatus(correlationId: string, isSuccess: boolean, statusCode: number, statusDescription: string): Promise<void>

매개 변수

correlationId

string

isSuccess

boolean

statusCode

number

statusDescription

string

반환

Promise<void>

notifyBlobUploadStatus(string, boolean, number, string, ErrorCallback)

notifyBlobUploadStatus 메서드는 Blob 업로드 결과를 IoT Hub에 보냅니다.

function notifyBlobUploadStatus(correlationId: string, isSuccess: boolean, statusCode: number, statusDescription: string, callback?: ErrorCallback)

매개 변수

correlationId

string

업로드 상태를 특정 Blob과 상호 연결하기 위한 ID입니다. getBlobSharedAccessSignature호출하는 동안 생성됩니다.

isSuccess

boolean

스토리지 Blob 작업 결과에서 성공 또는 실패 상태입니다.

statusCode

number

스토리지 Blob 결과와 연결된 HTTP 상태 코드입니다.

statusDescription

string

HTTP 상태 코드에 대한 설명입니다.

callback

ErrorCallback

업로드가 완료되면 호출할 선택적 콜백입니다.

onDeviceMethod(string, (request: DeviceMethodRequest, response: DeviceMethodResponse) => void)

methodName메서드에 대한 콜백을 등록합니다.

function onDeviceMethod(methodName: string, callback: (request: DeviceMethodRequest, response: DeviceMethodResponse) => void)

매개 변수

methodName

string

콜백에서 처리할 메서드의 이름

callback

(request: DeviceMethodRequest, response: DeviceMethodResponse) => void

methodName 호출된 메서드에 대한 메서드 요청이 수신될 때마다 호출되는 함수입니다.

setOptions(DeviceClientOptions)

function setOptions(options: DeviceClientOptions): Promise<TransportConfigured>

매개 변수

반환

Promise<TransportConfigured>

setOptions(DeviceClientOptions, Callback<TransportConfigured>)

function setOptions(options: DeviceClientOptions, done: Callback<TransportConfigured>)

매개 변수

done

Callback<TransportConfigured>

uploadToBlob(string, Stream, number)

function uploadToBlob(blobName: string, stream: Stream, streamLength: number): Promise<void>

매개 변수

blobName

string

stream

Stream

streamLength

number

반환

Promise<void>

uploadToBlob(string, Stream, number, ErrorCallback)

uploadToBlob 메서드는 Blob에 스트림을 업로드합니다.

function uploadToBlob(blobName: string, stream: Stream, streamLength: number, callback: ErrorCallback)

매개 변수

blobName

string

스트림의 콘텐츠로 만들 Blob에 사용할 이름입니다.

stream

Stream

Blob에 업로드해야 하는 데이터입니다.

streamLength

number

Blob에 업로드해야 하는 데이터의 크기입니다.

callback

ErrorCallback

상속된 메서드 세부 정보

abandon(Message)

function abandon(message: Message): Promise<MessageAbandoned>

매개 변수

message
Message

반환

Promise<MessageAbandoned>

InternalClient.abandon에서 상속된

abandon(Message, Callback<MessageAbandoned>)

function abandon(message: Message, abandonCallback: Callback<MessageAbandoned>)

매개 변수

message
Message
abandonCallback

Callback<MessageAbandoned>

InternalClient.abandon에서 상속된

addAbortListener(AbortSignal, (event: Event) => void)

제공된 abortsignal 이벤트를 한 번 수신합니다.

중단 신호에서 abort 이벤트를 수신 대기하는 것은 안전하지 않으며 신호가 있는 다른 타사에서 e.stopImmediatePropagation()호출할 수 있으므로 리소스 누수로 이어질 수 있습니다. 불행히도 Node.js 웹 표준을 위반하기 때문에 이를 변경할 수 없습니다. 또한 원래 API를 사용하면 수신기를 쉽게 제거할 수 있습니다.

이 API를 사용하면 AbortSignal 수신기가 실행되지 않도록 이벤트를 수신 대기하여 이러한 두 가지 문제를 해결하여 Node.js API에서 stopImmediatePropagation안전하게 사용할 수 있습니다.

더 쉽게 구독을 취소할 수 있도록 삭제 가능 항목을 반환합니다.

import { addAbortListener } from 'node:events';

function example(signal) {
  let disposable;
  try {
    signal.addEventListener('abort', (e) => e.stopImmediatePropagation());
    disposable = addAbortListener(signal, (e) => {
      // Do something when signal is aborted.
    });
  } finally {
    disposable?.[Symbol.dispose]();
  }
}
static function addAbortListener(signal: AbortSignal, resource: (event: Event) => void): Disposable

매개 변수

signal

AbortSignal

resource

(event: Event) => void

반환

Disposable

abort 수신기를 제거하는 삭제 가능

InternalClient.addAbortListener에서 상속된

addListener<K>(string | symbol, (args: any[]) => void)

에 대한 별칭입니다 emitter.on(eventName, listener).

function addListener<K>(eventName: string | symbol, listener: (args: any[]) => void): Client

매개 변수

eventName

string | symbol

listener

(args: any[]) => void

반환

InternalClient.addListener에서 상속된

complete(Message)

function complete(message: Message): Promise<MessageCompleted>

매개 변수

message
Message

반환

Promise<MessageCompleted>

InternalClient.complete에서 상속된

complete(Message, Callback<MessageCompleted>)

function complete(message: Message, completeCallback: Callback<MessageCompleted>)

매개 변수

message
Message
completeCallback

Callback<MessageCompleted>

InternalClient.complete에서 상속된

emit<K>(string | symbol, AnyRest)

등록된 순서대로 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<K>(eventName: string | symbol, args: AnyRest): boolean

매개 변수

eventName

string | symbol

args

AnyRest

반환

boolean

InternalClient.emit에서 상속된

eventNames()

이미터가 수신기를 등록한 이벤트를 나열하는 배열을 반환합니다. 배열의 값은 문자열 또는 Symbol.

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)[]

InternalClient.eventNames에서 상속된

getEventListeners(EventEmitter<DefaultEventMap> | EventTarget, string | symbol)

eventName이벤트에 대한 수신기 배열의 복사본을 반환합니다.

EventEmitter경우 이 동작은 방출기에서 .listeners 호출하는 것과 정확히 동일합니다.

EventTarget이벤트 대상에 대한 이벤트 수신기를 가져오는 유일한 방법입니다. 디버깅 및 진단 용도로 유용합니다.

import { getEventListeners, EventEmitter } from 'node:events';

{
  const ee = new EventEmitter();
  const listener = () => console.log('Events are fun');
  ee.on('foo', listener);
  console.log(getEventListeners(ee, 'foo')); // [ [Function: listener] ]
}
{
  const et = new EventTarget();
  const listener = () => console.log('Events are fun');
  et.addEventListener('foo', listener);
  console.log(getEventListeners(et, 'foo')); // [ [Function: listener] ]
}
static function getEventListeners(emitter: EventEmitter<DefaultEventMap> | EventTarget, name: string | symbol): Function[]

매개 변수

emitter

EventEmitter<DefaultEventMap> | EventTarget

name

string | symbol

반환

Function[]

InternalClient.getEventListeners에서 상속된

getMaxListeners()

설정되거나 기본값이 defaultMaxListeners 대한 현재 최대 수신기 값을 반환합니다.

function getMaxListeners(): number

반환

number

InternalClient.getMaxListeners에서 상속된

getMaxListeners(EventEmitter<DefaultEventMap> | EventTarget)

현재 설정된 최대 수신기 양을 반환합니다.

EventEmitter경우 이 동작은 방출기에서 .getMaxListeners 호출하는 것과 정확히 동일합니다.

EventTarget경우 이벤트 대상에 대한 최대 이벤트 수신기를 가져오는 유일한 방법입니다. 단일 EventTarget의 이벤트 처리기 수가 최대 집합을 초과하면 EventTarget에서 경고를 출력합니다.

import { getMaxListeners, setMaxListeners, EventEmitter } from 'node:events';

{
  const ee = new EventEmitter();
  console.log(getMaxListeners(ee)); // 10
  setMaxListeners(11, ee);
  console.log(getMaxListeners(ee)); // 11
}
{
  const et = new EventTarget();
  console.log(getMaxListeners(et)); // 10
  setMaxListeners(11, et);
  console.log(getMaxListeners(et)); // 11
}
static function getMaxListeners(emitter: EventEmitter<DefaultEventMap> | EventTarget): number

매개 변수

emitter

EventEmitter<DefaultEventMap> | EventTarget

반환

number

InternalClient.getMaxListeners에서 상속된

getTwin()

function getTwin(): Promise<Twin>

반환

Promise<Twin>

InternalClient.getTwin에서 상속된

getTwin(Callback<Twin>)

function getTwin(done: Callback<Twin>)

매개 변수

done

Callback<Twin>

InternalClient.getTwin에서 상속된

listenerCount(EventEmitter<DefaultEventMap>, string | symbol)

경고

이 API는 이제 사용되지 않습니다.

Since v3.2.0 - Use listenerCount instead.

지정된 eventName등록된 지정된 emitter 대한 수신기 수를 반환하는 클래스 메서드입니다.

import { EventEmitter, listenerCount } from 'node:events';

const myEmitter = new EventEmitter();
myEmitter.on('event', () => {});
myEmitter.on('event', () => {});
console.log(listenerCount(myEmitter, 'event'));
// Prints: 2
static function listenerCount(emitter: EventEmitter<DefaultEventMap>, eventName: string | symbol): number

매개 변수

emitter

EventEmitter<DefaultEventMap>

쿼리할 방출기

eventName

string | symbol

이벤트 이름

반환

number

InternalClient.listenerCount에서 상속된

listenerCount<K>(string | symbol, Function)

eventName이벤트를 수신 대기하는 수신기 수를 반환합니다. listener 제공된 경우 수신기가 이벤트 수신기 목록에서 발견된 횟수를 반환합니다.

function listenerCount<K>(eventName: string | symbol, listener?: Function): number

매개 변수

eventName

string | symbol

수신 대기 중인 이벤트의 이름입니다.

listener

Function

이벤트 처리기 함수

반환

number

InternalClient.listenerCount에서 상속된

listeners<K>(string | symbol)

eventName이벤트에 대한 수신기 배열의 복사본을 반환합니다.

server.on('connection', (stream) => {
  console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]
function listeners<K>(eventName: string | symbol): Function[]

매개 변수

eventName

string | symbol

반환

Function[]

InternalClient.listeners에서 상속된

off<K>(string | symbol, (args: any[]) => void)

에 대한 별칭입니다 emitter.removeListener().

function off<K>(eventName: string | symbol, listener: (args: any[]) => void): Client

매개 변수

eventName

string | symbol

listener

(args: any[]) => void

반환

InternalClient.off에서 상속된

on(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterIteratorOptions)

import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

// Emit later on
process.nextTick(() => {
  ee.emit('foo', 'bar');
  ee.emit('foo', 42);
});

for await (const event of on(ee, 'foo')) {
  // The execution of this inner block is synchronous and it
  // processes one event at a time (even with await). Do not use
  // if concurrent execution is required.
  console.log(event); // prints ['bar'] [42]
}
// Unreachable here

AsyncIterator 이벤트를 반복하는 eventName 반환합니다. EventEmitter 'error'내보내면 throw됩니다. 루프를 종료할 때 모든 수신기를 제거합니다. 각 반복에서 반환되는 value 내보낸 이벤트 인수로 구성된 배열입니다.

AbortSignal 사용하여 이벤트 대기를 취소할 수 있습니다.

import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ac = new AbortController();

(async () => {
  const ee = new EventEmitter();

  // Emit later on
  process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
  });

  for await (const event of on(ee, 'foo', { signal: ac.signal })) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
  }
  // Unreachable here
})();

process.nextTick(() => ac.abort());

close 옵션을 사용하여 반복을 종료할 이벤트 이름 배열을 지정합니다.

import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

// Emit later on
process.nextTick(() => {
  ee.emit('foo', 'bar');
  ee.emit('foo', 42);
  ee.emit('close');
});

for await (const event of on(ee, 'foo', { close: ['close'] })) {
  console.log(event); // prints ['bar'] [42]
}
// the loop will exit after 'close' is emitted
console.log('done'); // prints 'done'
static function on(emitter: EventEmitter<DefaultEventMap>, eventName: string | symbol, options?: StaticEventEmitterIteratorOptions): AsyncIterator<any[], any, any>

매개 변수

emitter

EventEmitter<DefaultEventMap>

eventName

string | symbol

options

StaticEventEmitterIteratorOptions

반환

AsyncIterator<any[], any, any>

AsyncIterator 내보낸 eventName 이벤트를 반복하는 emitter

InternalClient.on에서 상속된

on(EventTarget, string, StaticEventEmitterIteratorOptions)

static function on(emitter: EventTarget, eventName: string, options?: StaticEventEmitterIteratorOptions): AsyncIterator<any[], any, any>

매개 변수

emitter

EventTarget

eventName

string

options

StaticEventEmitterIteratorOptions

반환

AsyncIterator<any[], any, any>

InternalClient.on에서 상속된

on<K>(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<K>(eventName: string | symbol, listener: (args: any[]) => void): Client

매개 변수

eventName

string | symbol

이벤트의 이름입니다.

listener

(args: any[]) => void

콜백 함수

반환

InternalClient.on에서 상속된

once(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterOptions)

Promise 지정된 이벤트를 내보내거나 대기하는 동안 EventEmitterEventEmitter 내보내는 경우 거부되는 'error' 만듭니다. Promise 지정된 이벤트에 내보낸 모든 인수의 배열로 확인됩니다.

이 메서드는 의도적으로 제네릭이며 특별한 이벤트 의미 체계가 없고 'error' 이벤트를 수신 대기하지 않는 웹 플랫폼 'error' 인터페이스에서 작동합니다.

import { once, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

process.nextTick(() => {
  ee.emit('myevent', 42);
});

const [value] = await once(ee, 'myevent');
console.log(value);

const err = new Error('kaboom');
process.nextTick(() => {
  ee.emit('error', err);
});

try {
  await once(ee, 'myevent');
} catch (err) {
  console.error('error happened', err);
}

'error' 이벤트의 특수 처리는 events.once() 다른 이벤트를 기다리는 데 사용되는 경우에만 사용됩니다. events.once() 'error' 이벤트 자체를 기다리는 데 사용되는 경우 특별한 처리 없이 다른 종류의 이벤트로 처리됩니다.

import { EventEmitter, once } from 'node:events';

const ee = new EventEmitter();

once(ee, 'error')
  .then(([err]) => console.log('ok', err.message))
  .catch((err) => console.error('error', err.message));

ee.emit('error', new Error('boom'));

// Prints: ok boom

AbortSignal 사용하여 이벤트 대기를 취소할 수 있습니다.

import { EventEmitter, once } from 'node:events';

const ee = new EventEmitter();
const ac = new AbortController();

async function foo(emitter, event, signal) {
  try {
    await once(emitter, event, { signal });
    console.log('event emitted!');
  } catch (error) {
    if (error.name === 'AbortError') {
      console.error('Waiting for the event was canceled!');
    } else {
      console.error('There was an error', error.message);
    }
  }
}

foo(ee, 'foo', ac.signal);
ac.abort(); // Abort waiting for the event
ee.emit('foo'); // Prints: Waiting for the event was canceled!
static function once(emitter: EventEmitter<DefaultEventMap>, eventName: string | symbol, options?: StaticEventEmitterOptions): Promise<any[]>

매개 변수

emitter

EventEmitter<DefaultEventMap>

eventName

string | symbol

options

StaticEventEmitterOptions

반환

Promise<any[]>

InternalClient.once에서 상속된

once(EventTarget, string, StaticEventEmitterOptions)

static function once(emitter: EventTarget, eventName: string, options?: StaticEventEmitterOptions): Promise<any[]>

매개 변수

emitter

EventTarget

eventName

string

options

StaticEventEmitterOptions

반환

Promise<any[]>

InternalClient.once에서 상속된

once<K>(string | symbol, (args: any[]) => void)

이벤트에 대한 listenereventName 함수를 추가합니다. 다음에 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<K>(eventName: string | symbol, listener: (args: any[]) => void): Client

매개 변수

eventName

string | symbol

이벤트의 이름입니다.

listener

(args: any[]) => void

콜백 함수

반환

InternalClient.once에서 상속된

open()

function open(): Promise<Connected>

반환

Promise<Connected>

InternalClient.open에서 상속된

open(Callback<Connected>)

function open(openCallback: Callback<Connected>)

매개 변수

openCallback

Callback<Connected>

InternalClient.open에서 상속된

prependListener<K>(string | symbol, (args: any[]) => void)

이벤트에 대한 수신기 배열의 시작 함수를 추가합니다. listener 이미 추가되었는지 확인하기 위한 검사는 수행되지 않습니다. eventNamelistener 동일한 조합을 전달하는 여러 호출은 listener 여러 번 추가되고 호출됩니다.

server.prependListener('connection', (stream) => {
  console.log('someone connected!');
});

호출을 연결할 수 있도록 EventEmitter대한 참조를 반환합니다.

function prependListener<K>(eventName: string | symbol, listener: (args: any[]) => void): Client

매개 변수

eventName

string | symbol

이벤트의 이름입니다.

listener

(args: any[]) => void

콜백 함수

반환

InternalClient.prependListener에서 상속된

prependOnceListener<K>(string | symbol, (args: any[]) => void)

수신기 배열의 시작 이벤트에 대한 일회성 함수를 추가합니다. 다음에 eventName 트리거되면 이 수신기가 제거된 다음 호출됩니다.

server.prependOnceListener('connection', (stream) => {
  console.log('Ah, we have our first user!');
});

호출을 연결할 수 있도록 EventEmitter대한 참조를 반환합니다.

function prependOnceListener<K>(eventName: string | symbol, listener: (args: any[]) => void): Client

매개 변수

eventName

string | symbol

이벤트의 이름입니다.

listener

(args: any[]) => void

콜백 함수

반환

InternalClient.prependOnceListener에서 상속된

rawListeners<K>(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<K>(eventName: string | symbol): Function[]

매개 변수

eventName

string | symbol

반환

Function[]

InternalClient.rawListeners에서 상속된

reject(Message)

function reject(message: Message): Promise<MessageRejected>

매개 변수

message
Message

반환

Promise<MessageRejected>

InternalClient.reject에서 상속된

reject(Message, Callback<MessageRejected>)

function reject(message: Message, rejectCallback: Callback<MessageRejected>)

매개 변수

message
Message
rejectCallback

Callback<MessageRejected>

InternalClient.reject에서 상속된

removeAllListeners(string | symbol)

모든 수신기 또는 지정된 eventName제거합니다.

특히 다른 구성 요소 또는 모듈(예: 소켓 또는 파일 스트림)에서 EventEmitter 인스턴스를 만든 경우 코드의 다른 위치에 추가된 수신기를 제거하는 것은 잘못된 방법입니다.

호출을 연결할 수 있도록 EventEmitter대한 참조를 반환합니다.

function removeAllListeners(eventName?: string | symbol): Client

매개 변수

eventName

string | symbol

반환

InternalClient.removeAllListeners에서 상속된

removeListener<K>(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() 여러 번 호출해야 합니다.

이벤트가 내보내지면 내보내기 시 연결된 모든 수신기가 순서대로 호출됩니다. 이는 마지막 수신기가 실행을 완료하기 전에 내보내고 또는 호출이 진행 중인 제거되지 않음을 의미합니다. 후속 이벤트는 예상대로 동작합니다.

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<K>(eventName: string | symbol, listener: (args: any[]) => void): Client

매개 변수

eventName

string | symbol

listener

(args: any[]) => void

반환

InternalClient.removeListener에서 상속된

sendEvent(Message)

function sendEvent(message: Message): Promise<MessageEnqueued>

매개 변수

message
Message

반환

Promise<MessageEnqueued>

InternalClient.sendEvent에서 상속된

sendEvent(Message, Callback<MessageEnqueued>)

function sendEvent(message: Message, sendEventCallback: Callback<MessageEnqueued>)

매개 변수

message
Message
sendEventCallback

Callback<MessageEnqueued>

InternalClient.sendEvent에서 상속된

sendEventBatch(Message[])

function sendEventBatch(messages: Message[]): Promise<MessageEnqueued>

매개 변수

messages

Message[]

반환

Promise<MessageEnqueued>

InternalClient.sendEventBatch에서 상속된

sendEventBatch(Message[], Callback<MessageEnqueued>)

function sendEventBatch(messages: Message[], sendEventBatchCallback: Callback<MessageEnqueued>)

매개 변수

messages

Message[]

sendEventBatchCallback

Callback<MessageEnqueued>

InternalClient.sendEventBatch에서 상속된

setMaxListeners(number)

기본적으로 EventEmitter특정 이벤트에 대해 10 개 이상의 수신기가 추가되면 경고를 출력합니다. 이는 메모리 누수 찾기에 도움이 되는 유용한 기본값입니다. emitter.setMaxListeners() 메서드를 사용하면 이 특정 EventEmitter 인스턴스에 대한 제한을 수정할 수 있습니다. 값을 Infinity(또는 0)로 설정하여 무제한 수신기를 나타낼 수 있습니다.

호출을 연결할 수 있도록 EventEmitter대한 참조를 반환합니다.

function setMaxListeners(n: number): Client

매개 변수

n

number

반환

InternalClient.setMaxListeners에서 상속된

setMaxListeners(number, (EventEmitter<DefaultEventMap> | EventTarget)[])

import { setMaxListeners, EventEmitter } from 'node:events';

const target = new EventTarget();
const emitter = new EventEmitter();

setMaxListeners(5, target, emitter);
static function setMaxListeners(n?: number, eventTargets: (EventEmitter<DefaultEventMap> | EventTarget)[])

매개 변수

n

number

음수가 아닌 숫자입니다. EventTarget 이벤트당 최대 수신기 수입니다.

eventTargets

(EventEmitter<DefaultEventMap> | EventTarget)[]

{EventTarget} 또는 {EventEmitter} 인스턴스가 0개 이상입니다. 지정하지 않으면 새로 만든 모든 {EventTarget} 및 {EventEmitter} 개체에 대한 기본 최대값으로 n 설정됩니다.

InternalClient.setMaxListeners에서 상속된

setRetryPolicy(RetryPolicy)

모든 작업에서 클라이언트가 사용하는 재시도 정책을 설정합니다. 기본값은 ExponentialBackoffWithJitter.

function setRetryPolicy(policy: RetryPolicy)

매개 변수

policy

RetryPolicy

{RetryPolicy} 이후의 모든 작업에 사용해야 하는 재시도 정책입니다.

InternalClient.setRetryPolicy에서 상속된

setTransportOptions(any)

function setTransportOptions(options: any): Promise<TransportConfigured>

매개 변수

options

any

반환

Promise<TransportConfigured>

InternalClient.setTransportOptions에서 상속된

setTransportOptions(any, Callback<TransportConfigured>)

function setTransportOptions(options: any, done: Callback<TransportConfigured>)

매개 변수

options

any

done

Callback<TransportConfigured>

InternalClient.setTransportOptions에서 상속된

updateSharedAccessSignature(string, Callback<SharedAccessSignatureUpdated>)

function updateSharedAccessSignature(sharedAccessSignature: string, updateSasCallback?: Callback<SharedAccessSignatureUpdated>)

매개 변수

sharedAccessSignature

string

updateSasCallback

Callback<SharedAccessSignatureUpdated>

InternalClient.updateSharedAccessSignature에서 상속된

[captureRejectionSymbol]<K>(Error, string | symbol, AnyRest)

function [captureRejectionSymbol]<K>(error: Error, event: string | symbol, args: AnyRest)

매개 변수

error

Error

event

string | symbol

args

AnyRest

InternalClient.__@captureRejectionSymbol@141 상속된