Redis PubSub on nodejs: Какова цель функции обратного вызова подписки, поскольку обратный вызов обрабатывается при ('message') - PullRequest
0 голосов
/ 01 марта 2020

В реализации клиента nodejs мы видим следующее:

subscribe: OverloadedListCommand<string, string, R>;

А вот интерфейс:

export interface OverloadedListCommand<T, U, R> {
    (arg1: T, arg2: T, arg3: T, arg4: T, arg5: T, arg6: T, cb?: Callback<U>): R;
    (arg1: T, arg2: T, arg3: T, arg4: T, arg5: T, cb?: Callback<U>): R;
    (arg1: T, arg2: T, arg3: T, arg4: T, cb?: Callback<U>): R;
    (arg1: T, arg2: T, arg3: T, cb?: Callback<U>): R;
    (arg1: T, arg2: T, cb?: Callback<U>): R;
    (arg1: T | T[], cb?: Callback<U>): R;
    (...args: Array<T | Callback<U>>): R;
}

Поскольку (к сожалению) все события обрабатываются client.on('message', => ...), а не обратный вызов на уровне подписки, а команда subscribe не является обещанием, мне не ясно, какова цель обратного вызова.

Другой момент заключается в том, что в документации по подписке Redis указано, что

Как только клиент входит в подписанное состояние, он не должен выдавать какие-либо другие команды, кроме дополнительных команд SUBSCRIBE, PSUBSCRIBE, UNSUBSCRIBE, PUNSUBSCRIBE, PING и QUIT.

означает ли это, что для всех моих клиентов мне потребуется открыть новое клиентское соединение?

...