Я пытаюсь реализовать услугу, используя ZeroMQ
и Node.js
.
Я использую ZeroMQ. js привязки для него. Руководство ZeroMQ показывает, как обрабатывать несколько сокетов в одном потоке: используя zmq_poller .
Я пытаюсь реализовать что-то подобное в Node.js, но не могу найти подходящего способ как это сделать.
Я пробовал использовать Promise.race () вот так:
while(true) {
const message = await Promise.race([socket1.receive(), socket2.receive()]);
// process message, start over again
}
Но это вызывает ошибку при вводе while-l oop во второй раз с момента сокета который был медленнее в первой итерации, уже находится в режиме приема.
Вызов receive()
на нем во второй раз приведет к ошибке.
Итак, мой вопрос: есть ли способ mimi c zmq_poller
с ZeroMQ. js или есть другой разумный способ обрабатывать несколько сокетов.
Я хочу избежать разветвления, поскольку варианты использования, которые я пытаюсь реализовать, требуют, чтобы я использовал несколько сокетов для одного варианта использования.