Zapis danych do pliku .txt

0

Witam,
Mam taki kod:

<script>
     
	var binanceSocket = new WebSocket("wss://stream.binance.com:9443/ws/btcusdt@bookTicker");

         binanceSocket.onmessage = function (event) {
             console.log(event.data);

            var messageObject = JSON.parse(event.data)   	
        }
        </script>

Po uruchomieniu w konsoli widzimy dane w czasie "real-time". Gdzie jedna partia ma postać np:

{"u":9248108025,"s":"BTCUSDT","b":"50817.07000000","B":"0.16703800","a":"50826.26000000","A":"0.17000000"}

i do pliku chcę zapisywać wartość z "b" z godziną i datą, w pliku .txt dane wyglądałyby tak:

50817.07000000 -- 12:00:10 -- 24.02.21

Dane potrafią się zmienić kilka razy na sekundę, z każda zmianą chcę mieć w pliku .txt aktualną wartość.
Chyba że jest możliwość aby ten kod przerobić na php i w php odczytywać te dane z gniazda to wtedy wystarczy mi tylko kod aby dobrać się do tych danych a zapis do .txt już sobie sam napiszę. Zainteresowanych zapraszam na priv.

0

Nie możesz zapisać danych na lokalnym pliku. Zamiast tego możesz zapamiętać dane w pamięci przeglądarki powiązanej ze stroną za pomocą localStorage:

let d = new Date(parseInt(messageObject.u) * 1000);
localStorage.setItem("notowanie", messageObject .b +" -- " + d.toLocaleTimeString() + " -- " + d.toLocaleDateString());

localStorage zapamiętuje dane w powiązaniu ze stroną, więc kolejne otwarcie strony zapamiętuje ostatni wpis.

a potem odczytać, nawet w kolejnej sesji:

console.log(localStorage.getItem("notowanie"));

Jeśli dane mają zostac odczytane przez zewnętrzy program to najlepiej zapisać je w pliku/bazie na serwerze i potem sięgnąć po nie z poziomu aplikacji.

0

@mirek79:
Ja to chcę uruchamiać na linuxie na VPS z poziomu crona, nie mam tam możliwości uruchomić strony w przeglądarce bo wszystko obsługuje przez konsole. Jak sobie odpalisz ten kod z js co podałem to w konsoli widzisz jak szybko się dane zmieniają i w takim samym czasie chcę mieć te aktualne dane w .txt. Bo jak będę miał w .txt to wtedy będę czytał moim programem z .txt i wykonywał pewne operacje... Dla mnie najważniejszy jest czas, nie może być opóźnień czasowych. Tak naprawdę nie jest ważne w jakim języku te dane przez websocket zostaną pobrane, bo i tak maja być w .txt a czy to bedzie przez js czy java czy coś innego to bez znaczenia. Ważne żebym mógł w cron na VPS odpalić i żeby zapisywało do .txt. Więc jak ktoś potrafi odczytywać z websocket te dane w jakimś języku i zapisywać do .txt to priv.

2

https://stackoverflow.com/questions/22370966/connecting-to-websocket-with-php-client
Chyba nawet przykład z Twoim endpointem.
Jak chcesz dane co kilka sekund zapisywać to rozważ jakaś bazę etc. I rób np. bulk insert co 100 wierszy.

0
jurek1980 napisał(a):

https://stackoverflow.com/questions/22370966/connecting-to-websocket-with-php-client

Chyba nawet przykład z Twoim endpointem.
Jak chcesz dane co kilka sekund zapisywać to rozważ jakaś bazę etc. I rób np. bulk insert co 100 wierszy.

W pliku .txt chce chcę mieć zawsze aktualną wartość, czyli zawsze jest to jedna wartość. Do pliku ma zapisywać nie dopisywać. Dane są pobierane nawet kilkadziesiąt razy na sekundę, i każda zmianę chce mieć w pliku .txt, po prostu chce mieć tam aktualną wartość.

0

Ok, jak tam potrzebujesz. Z mojego punktu widzenia to dziwne rozwiązanie. Piłk zmieniający zawartość 3x na sek? Coś kojarzę te opisy z innych postów. Ja bym szukał innego rozwiązania.

0

lepiej tickery na kolejke i sciagaj z niej wartosci jak zajdzie potrzeba

1 użytkowników online, w tym zalogowanych: 0, gości: 1