Эффективное хранение и доступ к веб-сокетам для нескольких пользователей - PullRequest
0 голосов
/ 22 июня 2019

У меня есть торговая система, которая обслуживает нескольких пользователей, я никогда раньше не работал с websocket, поэтому мой вопрос в том, как мне хранить эти websockets и получать к ним доступ в любое время?

Это API, который я использую: https://github.com/binance-exchange/binance-api-node

Поэтому, когда дело доходит до пользователей, выполняющих лимитный ордер, мой единственный вариант - читать сокет userData и ждать события FILLED, чтобы проверить, был ли ордер исполнен.Мне удалось открыть новый веб-сокет для каждой сделки (что крайне неэффективно). Как «глобально» открыть только одну веб-сокет на пользователя вместо каждой сделки?

Это мой первоначальный подход:

function limit_order {
    *execute order* . then {
      //returns a response of order and its UNFILLED

      //create a new socket
      const clean = await client.ws.user(msg => {
        *wait and check for FILLED event*
      });
      *once done, call clean() to close the socket*

    }
}

Итак, опять мой вопрос: как и где мне хранить 1 веб-сокет на пользователя вместо каждой размещенной сделки?(Если я просто создам переменную сверху и назначу ей веб-сокет, она смешается с несколькими пользователями).

...