Neuvěřitelné rychlosti dosahované dnešními moderními internetovými připojeními usnadnily šíření aplikací v reálném čase. Jedná se o aplikace, které fungují v časovém rámci, který je dostatečně rychlý, aby uživatel vnímal jejich reakce jako okamžité pro všechny praktické účely. Latence tedy musí být v rámci sekund nebo dokonce zlomků sekundy.
Až donedávna byl vývoj aplikací v reálném čase určitou bolestí a vyžadoval velké inženýrské úsilí. Je to proto, že pro vytvoření jakékoli funkce v reálném čase musíte vytvořit obousměrné spojení mezi klientem a serverem, přes které budete odesílat zprávy. PubNub poskytuje rozhraní API v reálném čase a globální infrastrukturu pro zasílání zpráv pro zjednodušení kódování vašich aplikací v reálném čase. Využívá model Publish/Subscribe pro streamování dat v reálném čase a signalizaci zařízení, která vám umožní vytvořit a udržovat trvalá soketová připojení k jakémukoli zařízení a odeslat data globálnímu publiku za méně než čtvrt sekundy. Zprávy můžete publikovat na libovolném daném kanálu a klienti, kteří se přihlašují k odběru, obdrží pouze zprávy spojené s tímto kanálem. Obsah zprávy může obsahovat libovolné datové typy JSON včetně čísel, řetězců, polí a objektů.
V dnešním článku vytvoříme a otestujeme funkci pozdravu pomocí konzole PubNub.
Návod
PubNub má online konzoly pro vývoj a správu každé součásti vašich projektů a modulů od klíčů API po nastavení ladění. Proto vše, co dnes uděláme, se bude odehrávat na stránce PubNub.
- Začněme vytvořením účtu. Pokud již máte účet Google, můžete jej použít k poskytnutí svých přihlašovacích údajů.
- V administrátorské konzoli uvidíte, že pro vás již byl vytvořen ukázkový projekt. Kliknutím na něj otevřete projekt v konzole.
- Tam uvidíte svou ukázkovou sadu klíčů. Nyní na něj klikněte, abyste získali přístup k jeho podrobnostem.
- V části Doplňky aplikace v dolní části obrazovky uvidíte řadu možností. Povolte funkce PubNub, jak je znázorněno na obrázku 1:
Obrázek 1: Povolení funkcí PubNub - V levém dolním rohu obrazovky se zobrazí tlačítko Uložit. Kliknutím na něj uložíte změny.
- Nyní vytvoříme modul aplikace. V nabídce vlevo klikněte na Funkce PubNub a vyvolejte obrazovku Funkce PubNub (viz obrázek 2):
Obrázek 2: Obrazovka Funkce PubNub - V dialogovém okně Vytvořit nový modul zadejte „Pozdrav“ do pole „Zadejte název nové aplikace“. Klikněte na tlačítko „Vytvořit nový modul“, jak můžete vidět na obrázku 3:
Obrázek 3: Vytvoření nového moduluV horní části stránky byste měli obdržet oznámení „Nový modul byl úspěšně vytvořen“.
- Dále nakódujeme funkci. V kontextu aplikace v reálném čase je funkce místem, kam umísťujeme logiku, která běží proti zprávě. Kliknutím na tlačítko „+ VYTVOŘIT“ vytvoříte novou funkci.
- V dialogovém okně Nová funkce zadejte „Display Greeting“ jako „Název funkce“, zvolte „Before Publish or Fire“ jako „Typ funkce“ a zadejte „display_greeting“ jako „Název kanálu“ (viz obrázek 4 ):
Obrázek 4: Dokončení sekvence vytváření - Klikněte na tlačítko Vytvořit.
Zobrazí se editor modulu zobrazení pozdravu. Zobrazí funkci zobrazení pozdravu v editoru se základní kostrou. V tuto chvíli vše, co dělá, je zaprotokolovat požadavek a vrátit požadavek jako řešení příslibu :
export default (request) => { const kvstore = require('kvstore'); const xhr = require('xhr'); // Log the request envelope passed console.log('request', request); // Return a promise when you're done return request.ok(); }
V předchozím kódu:
- Parametr požadavku obsahuje objekt obálky zprávy PubNub.
- Tělo funkce importuje několik knihoven, zaprotokoluje požadavek a vrátí požadavek jako řešení slibu. (Vrácení request.ok() je ekvivalentní vrácení Promise.resolve(request)).
Tato funkce se spustí pokaždé, když zpráva vstoupí do sítě PubNub Data Stream, ale předtím, než bude dále replikována a distribuována předplatitelům, protože její typ je „Před zveřejněním“.
Nyní upravíme kód funkce tak, aby se k výchozí zprávě „Ahoj“ přidal název.
- V editoru kódu funkce nahraďte řádek console.log tímto:
request.message.greeting += " world!";
- Klikněte na tlačítko Uložit.
- Nyní otestujeme naši funkci. Do pole ‚Test Payload‘ zadejte následující literál JSON, jak je znázorněno na obrázku 5:
{ "greeting": "Hello" }
Obrázek 5: Zobrazení informací o zprávě - Klikněte na tlačítko Uložit test.
- Kliknutím na tlačítko „Publikovat“ odešlete zprávu do kanálu „hello_greeting“. Výstup bude vytištěn na testovací konzoli:
11:34:36 block: Deploying in regions: Eastern US, Western US, Asia, Central Europe. 11:34:38 block: Module is now globally deployed. 11:34:41 publish: { "greeting": "Hello world!" }
Jak můžete vidět, pozdrav nyní říká „Ahoj světe!“.
Použití konzole Production Developer Console
Z předchozích příkladů můžete vidět, že vestavěná testovací konzola je pohodlná, ale někdy můžete místo ní použít konzolu pro produkční vývojáře k lepší emulaci produkčního prostředí. Chcete-li použít produkční vývojářskou konzoli:
- Přejděte do vývojářské konzole PubNub.
- Nastavte „kanál“ na „hello_greeting“.
- Nastavte klíče pro publikování a přihlášení na klíče ukázkové sady klíčů.
- Klikněte na tlačítko Přihlásit se k odběru.
- Kliknutím na tlačítko Publikovat tentokrát zobrazíte stejný produkční výstup, jaký by váš klient viděl obsah zobrazený na obrázcích 6 a 7:
Obrázek 6: Publikování pozdravu
Obrázek 7: Produkční zprávy
Závěr
PubNub nabízí mnohem více než funkce. Nabízí také ChatEngine, Data Stream Network, Realtime Messaging a mnoho dalších nástrojů zaměřených na vývoj v reálném čase. Jeho služby nejsou zcela zdarma, ale pro většinu podniků pravděpodobně stojí za to.