NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: KOMUNIKACE S API VEŘEJNÉ BURZY

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Ondřej Jašek:16.6.2017 16:00

Zdravím,

potřeboval bych si udělat skriptík, co by spolupracoval s API veřejné burzy a hlídal by mi dle aktuální ceny minimum a maximum co si zadám. Pokud cena dosáhne jedné z hodnot hodí mi to notifikaci.
Přes setInterval v JS by mi to odesílalo requesty ale nevím jak přesně to mám propojit s tou API, jelikož s tímhle zatím nemám vůbec zkušenosti, někdo nějaký nápad jak na to ?

API : https://poloniex.com/support/api/

 
Odpovědět
16.6.2017 16:00
Avatar
kxmx
Tvůrce
Avatar
kxmx:19.6.2017 9:43

Já ti to za 5k napíšu.

 
Nahoru Odpovědět
19.6.2017 9:43
Avatar
Odpovídá na Ondřej Jašek
Wal De Mar-Lad:19.6.2017 9:52

V prípade tohoto API od Poloniex nepotrebuješ robiť takú zhovadilosť ako polling so setInterval. API má podporu push notifikácií, čiže len nadviažeš obojsmerné spojenie s API a len čo sa udeje zmena v kurze, potlačia Ti ju na Tvoj server, prípadne stránku.

Nahoru Odpovědět
19.6.2017 9:52
Libraries over frameworks...
Avatar
Odpovídá na Wal De Mar-Lad
Ondřej Jašek:19.6.2017 11:25

nemám vůbec ponětí jak to myslíš,

 
Nahoru Odpovědět
19.6.2017 11:25
Avatar
Wal De Mar-Lad:19.6.2017 11:48

V princípe sa jedná na pozadí o Web Sockets - formu komunikácie medzi stránkami v reálnom čase. Nemusíš sa proste na svoje stránke pomocou intervalu neustále dotazovať ich API aký je aktuálny kurz. Ale tvoja stránka sa zaregistruje, že chce byť informovaná o zmene kurzu napríklad zlata. A potom už nerobí nič, iba čaká na novú správu od API, že sa zmenil kurz. To je pointa - stránka čaká a nie, že sa v intervale zbytočne dokola dopytuje na aktuálny kurz. Takto sa to proste teraz robieva, používajú sa (rôzne formy) push notifikácie takmer v reálnom čase zo servera na klienta, miesto takzvaného pollingu - pýtania si dát v slučke z klienta od serveru. A presne toto aj API od Poloniexu dokáže, Tvoja stránka môže byť o zmene kurzu informovaná okamžite API serverom, miesto toho, aby si aktuálny kurz dostal až pri najbližšej iterácii slučky na klientovi.

Nahoru Odpovědět
19.6.2017 11:48
Libraries over frameworks...
Avatar
Odpovídá na Ondřej Jašek
Wal De Mar-Lad:19.6.2017 11:51

Inak o čo presne Ti ide? O kurz BTC?

Nahoru Odpovědět
19.6.2017 11:51
Libraries over frameworks...
Avatar
Petr Štechmüller:19.6.2017 11:57

Přikládám zdrojový kód jednoduché stránky. Stačí si tohle uložit jako index.html a spustit. Do konzole Ti to bude vypisovat každou změnu, která se provede. Není k tomu potřeba žádný NodeJS server. Je potřeba k tomuto skriptu stáhnout knihovnu autobahn, která je dostupná v minifikované verzi na této adrese.

<!doctype html>

<html lang="en">
<head>
  <meta charset="utf-8">

  <title>Test</title>
  <script src="./autobahn.min.js"></script>

</head>

<body>
  <script>

        var wsuri = "wss://api.poloniex.com";
        var connection = new autobahn.Connection({
          url: wsuri,
          realm: "realm1"
        });

        connection.onopen = function (session) {
                function marketEvent (args,kwargs) {
                        console.log(args);
                }
                function tickerEvent (args,kwargs) {
                        console.log(args);
                }
                function trollboxEvent (args,kwargs) {
                        console.log(args);
                }
                session.subscribe('BTC_XMR', marketEvent);
                session.subscribe('ticker', tickerEvent);
                session.subscribe('trollbox', trollboxEvent);
                console.log("Websocket is open");
        }

        connection.onclose = function () {
          console.log("Websocket connection closed");
        }

        connection.open();

  </script>
</body>
</html>

Doufám, že zbytek už zvládneš sám.
Btw. kód jsem okopíroval z jejich API přikladu právě pro NodeJS server.

Nahoru Odpovědět
19.6.2017 11:57
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Odpovídá na Ondřej Jašek
Wal De Mar-Lad:19.6.2017 12:43

Môžeš použiť ako príklad kód od Petra, alebo tu máš zjednodušený JSFIDDLE príklad

Nahoru Odpovědět
19.6.2017 12:43
Libraries over frameworks...
Avatar
Wal De Mar-Lad:19.6.2017 15:15

PS: A tu máš ešte pre istotu len o málo zložitejší príklad na sledovanie viacerých kurzov naraz.

Nahoru Odpovědět
19.6.2017 15:15
Libraries over frameworks...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.