Database
 sql >> Base de Dados >  >> RDS >> Database

Um guia para funções do PubNub


As incríveis velocidades alcançadas pelas modernas conexões de Internet de hoje facilitaram a proliferação de aplicativos em tempo real. São aplicativos que funcionam dentro de um prazo que é rápido o suficiente para que o usuário perceba suas respostas como imediatas para todos os propósitos práticos. Portanto, a latência deve estar dentro de segundos ou mesmo frações de segundo.

Até recentemente, desenvolver aplicativos em tempo real era uma dor e exigia um grande esforço de engenharia. Isso porque, para construir qualquer tipo de funcionalidade em tempo real, você precisa estabelecer uma conexão bidirecional entre cliente e servidor para enviar mensagens. PubNub fornece APIs em tempo real e infraestrutura global de mensagens para simplificar a codificação de seus aplicativos em tempo real. Ele utiliza um modelo de publicação/assinatura para transmissão de dados em tempo real e sinalização de dispositivo que permite estabelecer e manter conexões de soquete persistentes para qualquer dispositivo e enviar dados para públicos globais em menos de um quarto de segundo. Você pode publicar mensagens em qualquer canal e os clientes assinantes recebem apenas mensagens associadas a esse canal. A carga útil da mensagem pode conter qualquer tipo de dados JSON, incluindo números, strings, matrizes e objetos.

No artigo de hoje, vamos construir e testar uma função de saudação usando o console PubNub.

Passo a passo


O PubNub possui consoles online para desenvolver e gerenciar todos os componentes de seus projetos e módulos, desde chaves de API até configurações de depuração. Portanto, tudo o que faremos hoje acontecerá no site PubNub.
  1. Vamos começar criando uma conta. Se você já tem uma conta do Google, pode usá-la para fornecer suas credenciais.
  2. No console administrativo, você verá que um projeto de demonstração já foi criado para você. Clique nele para abrir o projeto no console.
  3. Ali, você verá seu conjunto de chaves de demonstração. Agora, clique nele para acessar seus detalhes.
  4. Em Complementos do aplicativo, na parte inferior da tela, você verá várias opções. Habilite as funções do PubNub, conforme mostrado na Figura 1:

    Figura 1: Habilitando funções do PubNub
  5. O botão Salvar aparecerá no canto inferior esquerdo da tela. Clique nele para salvar suas alterações.
  6. Agora, vamos criar um módulo de aplicativo. No menu à esquerda, clique em PubNub Functions para abrir a tela PubNub Functions (veja a Figura 2):

    Figura 2: A tela de funções do PubNub
  7. Na caixa de diálogo Criar novo módulo, digite "Saudação" no campo "Digite um novo nome de aplicativo". Clique no botão ‘Create New Module’, como você pode ver na Figura 3:

    Figura 3: Criando um novo módulo

    Você deve receber uma notificação "Novo módulo criado com sucesso" na parte superior da página.
  8. Em seguida, codificaremos a função. Dentro do contexto de um aplicativo em tempo real, a Função é onde colocamos a lógica que é executada na mensagem. Clique no botão "+ CRIAR" para criar uma nova função.
  9. Na caixa de diálogo Nova função, insira "Exibir saudação" em "Nome da função", escolha "Antes de publicar ou disparar" em "Tipo de função" e insira "display_greeting" em "Nome do canal" (consulte a Figura 4 ):

    Figura 4: Completando a sequência de criação
  10. Clique em "Criar".

O editor Display Greeting Module aparecerá. Ele mostrará a função de exibição de saudação no editor com um esqueleto básico. No momento, tudo o que ele faz é registrar a solicitação e devolvê-la como uma resolução de promessa :
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();
}

No código anterior:
  • O parâmetro de solicitação contém o objeto de envelope de mensagem PubNub.
  • O corpo da função importa algumas bibliotecas, registra a solicitação e retorna a solicitação como uma resolução de promessa. (Retornar request.ok() é equivalente a retornar Promise.resolve(request)).

Essa função será executada toda vez que a mensagem entrar na rede PubNub Data Stream, mas antes de ser replicada e distribuída aos assinantes, porque seu tipo é ‘Before Publish’.

Agora, modificaremos o código da função para anexar um nome à mensagem padrão “Hello”.
  1. No editor de código de função, substitua a linha console.log pelo seguinte:
    request.message.greeting += " world!";
  2. Clique em "Salvar".
  3. Agora, vamos testar nossa função. No campo 'Test Payload', insira o seguinte literal JSON, conforme mostrado na Figura 5:
    {
       "greeting": "Hello"
    }
    


    Figura 5: Exibindo as informações da mensagem
  4. Clique em "Salvar teste".
  5. Clique em 'Publicar' para enviar a mensagem para o canal 'hello_greeting'. A saída será impressa no console de teste:
    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!" }
    

Como você pode ver, a saudação agora diz “Olá, mundo!”.

Usando o console do desenvolvedor de produção


Você pode ver nos exemplos anteriores que o console de teste integrado é conveniente, mas às vezes você pode querer usar o console do desenvolvedor de produção para emular melhor um ambiente de produção. Para usar o console do desenvolvedor de produção:
  1. Navegue até o PubNub Developer Console.
  2. Defina o "canal" como "hello_greeting".
  3. Defina as chaves de publicação e assinatura para aquelas do conjunto de chaves de demonstração.
  4. Clique em "Assinar".
  5. Clicar no botão Publicar desta vez exibe a mesma saída de produção que seu cliente veria o conteúdo mostrado nas Figuras 6 e 7:

    Figura 6: Publicando a saudação


    Figura 7: Mensagens de produção

Conclusão


Há muito mais no PubNub do que no Functions. Ele também oferece um ChatEngine, Data Stream Network, Realtime Messaging e muitas outras ferramentas voltadas para o desenvolvimento em tempo real. Seus serviços não são totalmente gratuitos, mas provavelmente valem o custo para a maioria das empresas.