В реализации клиента 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.
означает ли это, что для всех моих клиентов мне потребуется открыть новое клиентское соединение?