Oto coś jestem bawiąc. Nie jest autorytatywne, ale wydaje się działać: https://gist.github.com/cuadue/6427101
Gdy dane pochodzą z websocket, umieść go w buforze. Pompuj wywołania zwrotne (wyjaśnię to poniżej), wysyłając bufor jako argument. Sprawdź kod powrotu "sukces" lub "poczekaj na więcej danych". Sukces oznacza, że dane zostały wysłane do kubizmu i możemy usunąć to wywołanie zwrotne.
Gdy kubizm żąda ramki danych, skonfiguruj wywołanie zwrotne, które sprawdza, czy ostatni punkt w buforze jest po ostatnim kubizmie żądanym. W przeciwnym razie poczekaj na więcej danych.
Jeśli istnieją dane dotyczące zatrzymania żądanej ramki, spełnimy tę prośbę. Bez interfejsu API do żądania historii, musimy upuścić dane z przeszłości.
Następnie, po prostu interpoluj bufor do rozmiaru kroku kubizmu.
Wygląda na to, że kubizm żąda danych z tego samego punktu w czasie wiele razy, więc od ciebie zależy, jak wyczyścić bufor. Nie sądzę, że bezpieczne jest po prostu upuścić wszystkie dane wcześniej niż żądany czas rozpoczęcia.
Chciałbym znać rozwiązanie –