Может ли кто-нибудь объяснить мне, что делает кефир в этом коде?
Я только начал работать с 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));
}
})();