Niewiarygodne prędkości osiągane przez dzisiejsze nowoczesne połączenia internetowe ułatwiły rozprzestrzenianie się aplikacji czasu rzeczywistego. Są to aplikacje, które działają w ramach czasowych, które są wystarczająco szybkie, aby użytkownik wyczuwał ich reakcje jako natychmiastowe dla wszystkich praktycznych celów. Dlatego opóźnienie musi być w ciągu kilku sekund lub nawet ułamków sekundy.
Do niedawna tworzenie aplikacji czasu rzeczywistego było uciążliwe i wymagało dużego wysiłku inżynierskiego. Dzieje się tak dlatego, że aby zbudować jakąkolwiek funkcjonalność czasu rzeczywistego, musisz ustanowić dwukierunkowe połączenie między klientem a serwerem, aby wysyłać wiadomości. PubNub zapewnia interfejsy API czasu rzeczywistego i globalną infrastrukturę przesyłania wiadomości, aby uprościć kodowanie aplikacji w czasie rzeczywistym. Wykorzystuje model publikowania/subskrybowania do przesyłania strumieniowego danych w czasie rzeczywistym i sygnalizacji urządzeń, który umożliwia nawiązywanie i utrzymywanie trwałych połączeń gniazd z dowolnym urządzeniem oraz przesyłanie danych do odbiorców na całym świecie w czasie krótszym niż ćwierć sekundy. Możesz publikować wiadomości na dowolnym kanale, a subskrybujący klienci otrzymują tylko wiadomości powiązane z tym kanałem. Ładunek wiadomości może zawierać dowolne typy danych JSON, w tym liczby, ciągi, tablice i obiekty.
W dzisiejszym artykule zbudujemy i przetestujemy funkcję powitania za pomocą konsoli PubNub.
Przewodnik
PubNub ma konsole online do tworzenia i zarządzania każdym komponentem twoich projektów i modułów, od kluczy API po ustawienia debugowania. Dlatego wszystko, co dzisiaj zrobimy, będzie miało miejsce na stronie PubNub.
- Zacznijmy od utworzenia konta. Jeśli masz już konto Google, możesz użyć go do podania swoich danych logowania.
- W konsoli administracyjnej zobaczysz, że projekt demonstracyjny został już dla Ciebie utworzony. Kliknij go, aby otworzyć projekt w konsoli.
- Tam zobaczysz swój zestaw kluczy demonstracyjnych. Teraz kliknij go, aby uzyskać dostęp do jego szczegółów.
- W sekcji Dodatki do aplikacji u dołu ekranu zobaczysz szereg opcji. Włącz funkcje PubNub, jak pokazano na rysunku 1:
Rysunek 1: Włączanie funkcji PubNub - Przycisk Zapisz pojawi się w lewym dolnym rogu ekranu. Kliknij, aby zapisać zmiany.
- Teraz utworzymy moduł aplikacji. W menu po lewej stronie kliknij PubNub Functions, aby wyświetlić ekran PubNub Functions (patrz rysunek 2):
Rysunek 2: Ekran funkcji PubNub - W oknie dialogowym Utwórz nowy moduł wpisz „Powitanie” w polu „Wprowadź nową nazwę aplikacji”. Kliknij przycisk „Utwórz nowy moduł”, jak widać na rysunku 3:
Rysunek 3: Tworzenie nowego modułuPowinieneś otrzymać powiadomienie „Pomyślnie utworzono nowy moduł” u góry strony.
- Następnie zakodujemy funkcję. W kontekście aplikacji czasu rzeczywistego funkcja to miejsce, w którym umieszczamy logikę, która działa w stosunku do wiadomości. Kliknij przycisk „+ UTWÓRZ”, aby utworzyć nową funkcję.
- W oknie dialogowym Nowa funkcja wpisz „Wyświetl powitanie” jako „Nazwę funkcji”, wybierz „Przed opublikowaniem lub uruchomieniem” jako „Typ funkcji” i wpisz „display_greeting” jako „Nazwę kanału” (patrz Rysunek 4 ):
Rysunek 4: Zakończenie sekwencji tworzenia - Kliknij „Utwórz”.
Pojawi się edytor wyświetlania modułu powitalnego. Wyświetli funkcję wyświetlania powitania w edytorze z podstawowym szkieletem. W tej chwili wszystko, co robi, to rejestrowanie żądania i zwracanie żądania jako rozwiązanie obietnicy :
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(); }
W poprzednim kodzie:
- Parametr żądania przechowuje obiekt koperty wiadomości PubNub.
- Ciało funkcji importuje kilka bibliotek, rejestruje żądanie i zwraca żądanie jako rozwiązanie obietnicy. (Zwrócenie request.ok() jest równoważne zwróceniu Promise.resolve(request)).
Ta funkcja będzie działać za każdym razem, gdy wiadomość wejdzie do sieci strumienia danych PubNub, ale przed dalszą replikacją i dystrybucją wśród subskrybentów, ponieważ jej typ to „Przed opublikowaniem”.
Teraz zmodyfikujemy kod funkcji, aby dodać nazwę do domyślnej wiadomości „Hello”.
- W edytorze kodu funkcji zastąp wiersz console.log następującym:
request.message.greeting += " world!";
- Kliknij „Zapisz”.
- Teraz przetestujmy naszą funkcję. W polu „Test Payload” wprowadź następujący literał JSON, jak pokazano na rysunku 5:
{ "greeting": "Hello" }
Rysunek 5: Wyświetlanie informacji o wiadomości - Kliknij „Zapisz test”.
- Kliknij „Opublikuj”, aby wysłać wiadomość na kanał „hello_greeting”. Dane wyjściowe zostaną wydrukowane w konsoli testowej:blok
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 widać, powitanie mówi teraz „Witaj świecie!”.
Korzystanie z produkcyjnej konsoli programisty
Z poprzednich przykładów widać, że wbudowana konsola testowa jest wygodna, ale czasami zamiast tego można użyć produkcyjnej konsoli deweloperskiej, aby lepiej emulować środowisko produkcyjne. Aby użyć produkcyjnej konsoli programisty:
- Przejdź do Konsoli programisty PubNub.
- Ustaw „kanał” na „hello_greeting”.
- Ustaw klucze publikowania i subskrypcji na te z zestawu kluczy demonstracyjnych.
- Kliknij „Subskrybuj”.
- Kliknięcie przycisku Opublikuj tym razem powoduje wyświetlenie tych samych wyników produkcji, które klient widziałby w treści pokazanej na rysunkach 6 i 7:
Rysunek 6: Publikowanie powitania
Rysunek 7: Wiadomości produkcyjne
Wniosek
W PubNub jest o wiele więcej niż funkcje. Oferuje również ChatEngine, Data Stream Network, Realtime Messaging i wiele innych narzędzi przeznaczonych do rozwoju w czasie rzeczywistym. Jego usługi nie są całkowicie bezpłatne, ale prawdopodobnie są warte swojej ceny dla większości firm.