Может ли кто-нибудь объяснить мне, что делает кефир в этом коде?

Я только начал работать с WebSockets и наткнулся на этот код.

Кажется, я не могу понять, что именно делает кефир (функция потока)? Я так понимаю, это что-то вроде rxjs, но не совсем?

Может ли кто-нибудь мне это объяснить?:D

Большое спасибо.

export const SocketApi = new (class {
  private readonly socket = new Socket(apiUrl); //apiUrl = ws://localhost:3000

  readonly incoming = stream<IncomingMessage, never>(emitter => {
    this.socket.addEventListener('message', ({ data }) => {
      const message = safeParseJson<IncomingMessage>(data);
      if (message == null) {
        console.error(`Erroneous message from ${this.socket.url}:\n${data}`);
        return;
      }

      emitter.emit(message);
    });
  });

  requestFreqRange(freqStart: number, freqStop: number): void {
    console.log('reqFreqRange');
    const message: OutgoingMessage = {
      messageType: 'requestFreqRange',
      freqStart,
      freqStop,
    };
    this.socket.send(JSON.stringify(message));
  }

  requestRefLevel(refLevel: number): void {
    const message: OutgoingMessage = {
      messageType: 'requestRefLevel',
      refLevel,
    };
    this.socket.send(JSON.stringify(message));
  }
})();

0 ответов

Другие вопросы по тегам