Невероятните скорости, постигнати от съвременните съвременни интернет връзки, улесниха разпространението на приложения в реално време. Това са приложения, които функционират в рамките на времева рамка, която е достатъчно бърза, така че потребителят да усети техните отговори като незабавни за всички практически цели. Следователно латентността трябва да бъде в рамките на секунди или дори части от секундата.
Доскоро разработването на приложения в реално време беше някакво мъка и изискваше големи инженерни усилия. Това е така, защото, за да изградите всякакъв вид функционалност в реално време, трябва да установите двупосочна връзка между клиент и сървър, за да изпращате съобщения. PubNub предоставя API в реално време и глобална инфраструктура за съобщения, за да опрости кодирането на вашите приложения в реално време. Той използва модел Publish/Subscribe за стрийминг на данни в реално време и сигнализиране на устройството, който ви позволява да установявате и поддържате постоянни сокетни връзки към всяко устройство и да изпращате данни до глобалната аудитория за по-малко от четвърт секунда. Можете да публикувате съобщения във всеки даден канал и абониралите се клиенти получават само съобщения, свързани с този канал. Полезният товар на съобщението може да съдържа всякакви типове данни JSON, включително числа, низове, масиви и обекти.
В днешната статия ще изградим и тестваме функция за поздрав с помощта на конзолата PubNub.
Разходка
PubNub има онлайн конзоли за разработване и управление на всеки компонент от вашите проекти и модули от API ключове до настройки за отстраняване на грешки. Следователно всичко, което ще правим днес, ще се случва на сайта на PubNub.
- Нека започнем със създаване на акаунт. Ако вече имате акаунт в Google, можете да го използвате, за да предоставите своите идентификационни данни.
- В администраторската конзола ще видите, че демонстрационен проект вече е създаден за вас. Щракнете върху него, за да отворите проекта в конзолата.
- Там ще видите своя демо ключ. Сега кликнете върху него, за да получите достъп до подробностите му.
- Под Добавки за приложения в долната част на екрана ще видите редица опции. Активирайте PubNub функции, както е показано на фигура 1:
Фигура 1: Активиране на PubNub функции - Бутонът Запазване ще се появи в долния ляв ъгъл на екрана. Щракнете върху него, за да запазите промените си.
- Сега ще създадем модул за приложение. В лявото меню щракнете върху PubNub Functions, за да изведете екрана PubNub Functions (вижте фигура 2):
Фигура 2: Екранът с функции на PubNub - В диалоговия прозорец Създаване на нов модул въведете „Поздрав“ в полето „Въведете име на ново приложение“. Щракнете върху бутона „Създаване на нов модул“, както можете да видите на фигура 3:
Фигура 3: Създаване на нов модулТрябва да получите известие „Нов модул е създаден успешно“ в горната част на страницата.
- След това ще кодираме функцията. В контекста на приложение в реално време, функцията е мястото, където поставяме логиката, която работи срещу съобщението. Щракнете върху бутона „+ СЪЗДАВАНЕ“, за да създадете нова функция.
- В диалоговия прозорец за нова функция въведете „Display Greeting“ за „Име на функция“, изберете „Before Publish or Fire“ за „Тип функция“ и въведете „display_greeting“ за „Име на канал“ (вижте Фигура 4 ):
Фигура 4: Завършване на последователността за създаване - Щракнете върху „Създаване“.
Ще се появи редакторът на модула за поздравителни съобщения. Той ще покаже функцията за показване на поздрав в редактора с основен скелет. В момента всичко, което прави, е да регистрира заявката и да я върне като обещано решение :
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(); }
В предходния код:
- Параметърът на заявката съдържа обекта на плика за съобщение PubNub.
- Тялото на функцията импортира няколко библиотеки, регистрира заявката и връща заявката като резолюция на обещание. (Връщането на request.ok() е еквивалентно на връщането на Promise.resolve(request)).
Тази функция ще се изпълнява всеки път, когато съобщението влезе в мрежата за поток от данни на PubNub, но преди да бъде допълнително репликирано и разпространено на абонатите, тъй като типът му е „Преди публикуване“.
Сега ще променим кода на функцията, за да добавим име към съобщението „Здравей“ по подразбиране.
- В редактора на функционален код заменете реда console.log със следното:
request.message.greeting += " world!";
- Щракнете върху „Запазване“.
- Сега нека тестваме нашата функция. В полето „Тестово полезно натоварване“ въведете следния JSON литерал, както е показано на фигура 5:
{ "greeting": "Hello" }
Фигура 5: Показване на информацията за съобщението - Щракнете върху „Запазване на теста“.
- Щракнете върху „Публикуване“, за да изпратите съобщението до канала „hello_greeting“. Резултатът ще бъде отпечатан на тестовата конзола:
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!" }
Както можете да видите, поздравът сега казва „Здравей, свят!“.
Използване на производствената конзола за разработчици
Можете да видите от предходните примери, че вградената тестова конзола е удобна, но понякога може да искате да използвате конзолата за разработчици на продукцията, за да емулирате по-добре производствена среда. За да използвате производствената конзола за разработчици:
- Отидете до конзолата за програмисти на PubNub.
- Задайте „канал“ на „hello_greeting“.
- Задайте ключовете за публикуване и абониране към тези на демонстрационния набор.
- Щракнете върху „Абониране“.
- Щракването върху бутона Публикуване този път показва същата продукция, която клиентът ви ще види съдържанието, показано на фигури 6 и 7:
Фигура 6: Публикуване на поздрава
Фигура 7: Производствени съобщения
Заключение
PubNub има много повече от функции. Той също така предлага ChatEngine, мрежа за поток от данни, съобщения в реално време и много други инструменти, насочени към разработка в реално време. Услугите му не са напълно безплатни, но вероятно си заслужават разходите за повечето фирми.