sql >> Database >  >> RDS >> Database

Een gids voor PubNub-functies

De ongelooflijke snelheden die worden bereikt door de moderne internetverbindingen van vandaag hebben de verspreiding van realtime-applicaties mogelijk gemaakt. Dit zijn toepassingen die functioneren binnen een tijdsbestek dat snel genoeg is zodat de gebruiker voelt dat zijn reacties onmiddellijk zijn voor alle praktische doeleinden. Daarom moet de latentie binnen enkele seconden of zelfs fracties van een seconde zijn.

Tot voor kort was het ontwikkelen van realtime-apps nogal lastig en vereiste een grote technische inspanning. Dat komt omdat, om elke vorm van realtime functionaliteit te bouwen, u een bidirectionele verbinding tot stand moet brengen tussen client en server om berichten te verzenden. PubNub biedt realtime API's en wereldwijde berichteninfrastructuur om de codering van uw realtime apps te vereenvoudigen. Het maakt gebruik van een Publish/Subscribe-model voor realtime gegevensstreaming en apparaatsignalering waarmee u in minder dan een kwart seconde permanente socketverbindingen met elk apparaat tot stand kunt brengen en onderhouden en gegevens naar een wereldwijd publiek kunt pushen. U kunt berichten op elk kanaal publiceren en abonnees ontvangen alleen berichten die bij dat kanaal horen. De payload van het bericht kan alle JSON-gegevenstypen bevatten, inclusief getallen, strings, arrays en objecten.

In het artikel van vandaag zullen we een begroetingsfunctie bouwen en testen met behulp van de PubNub-console.

Doorloop

PubNub heeft online consoles voor het ontwikkelen en beheren van elk onderdeel van uw projecten en modules, van API-sleutels tot foutopsporingsinstellingen. Daarom zal alles wat we vandaag gaan doen plaatsvinden op de PubNub-site.

  1. Laten we beginnen met het maken van een account. Als u al een Google-account heeft, kunt u deze gebruiken om uw inloggegevens te verstrekken.
  2. In de beheerdersconsole ziet u dat er al een demoproject voor u is gemaakt. Klik erop om het project in de console te openen.
  3. Daar zie je je demosleutelset. Klik er nu op om toegang te krijgen tot de details.
  4. Onder Applicatie-add-ons onderaan het scherm ziet u een aantal opties. Schakel PubNub-functies in, zoals weergegeven in afbeelding 1:


    Figuur 1: PubNub-functies inschakelen

  5. De knop Opslaan verschijnt in de linkerbenedenhoek van het scherm. Klik erop om je wijzigingen op te slaan.
  6. Nu gaan we een app-module maken. Klik in het menu aan de linkerkant op PubNub-functies om het scherm PubNub-functies te openen (zie afbeelding 2):


    Figuur 2: Het scherm PubNub-functies

  7. Voer in het dialoogvenster Nieuwe module maken "Begroeting" in het veld 'Voer een nieuwe app-naam in' in. Klik op de knop 'Nieuwe module maken', zoals u kunt zien in figuur 3:


    Figuur 3: Een nieuwe module maken

    U zou een melding "Nieuwe module succesvol gemaakt" bovenaan de pagina moeten ontvangen.

  8. Vervolgens coderen we de functie. Binnen de context van een realtime app, is de functie waar we de logica plaatsen die tegen het bericht ingaat. Klik op de knop '+ MAKEN' om een ​​nieuwe functie aan te maken.
  9. Voer in het dialoogvenster Nieuwe functie 'Begroeting weergeven' in voor de 'Functienaam', kies 'Voor publiceren of activeren' voor het 'Functietype' en voer 'display_begroeting' in voor de 'Kanaalnaam' (zie Afbeelding 4 ):


    Figuur 4: De aanmaakreeks voltooien

  10. Klik op 'Maken'.

De Editor Begroetingsmodule weergeven zal verschijnen. Het toont de functie Begroeting weergeven in de editor met een basisskelet. Op dit moment hoeft het alleen maar het verzoek te loggen en het verzoek terug te sturen als een belofteoplossing :

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();
}

In de voorgaande code:

  • De request parameter bevat het PubNub message envelope object.
  • De hoofdtekst van de functie importeert een paar bibliotheken, registreert het verzoek en retourneert het verzoek als een belofte-oplossing. (Het retourneren van request.ok() is het equivalent van het retourneren van Promise.resolve(request)).

Deze functie wordt uitgevoerd telkens wanneer het bericht het PubNub Data Stream Network binnenkomt, maar voordat het verder wordt gerepliceerd en gedistribueerd naar abonnees, omdat het type 'Before Publish' is.

Nu gaan we de functiecode wijzigen om een ​​naam toe te voegen aan het standaard "Hallo"-bericht.

  1. In de functiecode-editor vervangt u de regel console.log door het volgende:
    request.message.greeting += " world!";
  2. Klik op 'Opslaan'.
  3. Laten we nu onze functie testen. Voer in het veld 'Test Payload' de volgende JSON-letterlijk in, zoals weergegeven in Afbeelding 5:
    {
       "greeting": "Hello"
    }
    


    Figuur 5: De berichtinformatie weergeven

  4. Klik op 'Test opslaan'.
  5. Klik op 'Publiceren' om het bericht naar het kanaal 'hello_greeting' te sturen. De uitvoer wordt afgedrukt naar de testconsole:
    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!" }
    

Zoals je kunt zien, zegt de begroeting nu "Hallo wereld!".

De Production Developer Console gebruiken

U kunt aan de voorgaande voorbeelden zien dat de ingebouwde testconsole handig is, maar soms wilt u in plaats daarvan de productie-ontwikkelaarsconsole gebruiken om een ​​productieomgeving beter te emuleren. De console voor productieontwikkelaars gebruiken:

  1. Navigeer naar de PubNub Developer Console.
  2. Stel het 'kanaal' in op 'hello_greeting'.
  3. Stel de publicatie- en abonnementssleutels in op die van de demosleutelset.
  4. Klik op 'Abonneren'.
  5. Als u deze keer op de knop Publiceren klikt, wordt dezelfde productie-output weergegeven die uw klant zou zien met de inhoud zoals weergegeven in afbeelding 6 en 7:


    Figuur 6: De begroeting publiceren


    Figuur 7: Productieberichten

Conclusie

PubNub is veel meer dan alleen functies. Het biedt ook een ChatEngine, Data Stream Network, Realtime Messaging en vele andere tools gericht op realtime ontwikkeling. De diensten zijn niet helemaal gratis, maar zijn waarschijnlijk de kosten meer dan waard voor de meeste bedrijven.


  1. Wat zijn realtime-apps?

  2. Full-text zoeken in Postgres of CouchDB?

  3. Een MySQL-database repareren in cPanel

  4. Hoe indexen voor een database of tabel in MySQL te zien?