Socket
Socket
Sign inDemoInstall

websocket-pubsub

Package Overview
Dependencies
3
Maintainers
1
Versions
39
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    websocket-pubsub

Solução de PubSub & RPC usando WebSocket e node.js para aplicações de baixa e média complexidade


Version published
Weekly downloads
33
increased by94.12%
Maintainers
1
Install size
244 kB
Created
Weekly downloads
 

Readme

Source

websocket-pubsub

[ ATENÇÃO! EM DESENVOLVIMENTO ]
Solução de PubSub & RPC usando WebSocket e node.js para aplicações de baixa e média complexidade

npm version Build Status



websocket-pubsub é uma biblioteca que tem o objetivo de facilitar o desenvolvimento de aplicações dinâmicas por meio dos padrões pub-sub/ Publish–Subscribe com Tópicos e RPC utilizando o protocolo WebSocket.

A transfência das mensagens entre Cliente e Servidor é feito de forma compactada, usando um algoritmo de Delta Encoding (diff & patch) que garante o transporte apenas da diferença existente entre os dados conhecidos pelo cliente com os novos dados publicados no servidor, diminuindo o consumo de banda e latencia.

O websocket-pubsub pode ser usado em páginas Web/PWA, aplicativos Mobile (React Native e soluções baseadas em WebView [como Ionic e aplicações geradas com uso do Cordova/Phonegap]) e integração entre servidores Node.js.

O que posso fazer com websocket-pubsub

  • Criar publicador de conteúdo (PUBLISHER) no servidor (node.js) que envia mensagem para um tópico (TOPIC) a partir de uma busca em um repositório.
  • A partir da Web, Aplicativo Mobile ou Node.js, ouvir (SUBSCRIBER) as mensagens envidadas para um Tópico, recebendo as atualizações de forma compactada.
  • Disponibilizar métodos (ACTION) no servidor que podem ser invocados pelos clientes (Web, Mobile, Node.js), permitindo receber respostas Síncronas (com Promises) para essa ação [RPC]
  • No servidor, a qualquer momento e fluxo, solicitar a publicação de novos dados de um Tópico cadastrado.
  • Atualizar página Web ou Aplicativos Mobile sempre que uma atualização ocorra no servidor por meio do padrão PubSub
  • Utilizar MongoDB, PostgreSQL ou qualqer outro tipo de repositório de dados, até mesmo repositório EM MEMÓRIA.
  • Adicionar Midlewares nas Actions ou Publishers para ter um controle fino sobre a execução, permitindo, por exemplo, gerenciar Autenticação, Autorização de acesso ou Geração de Logs de execção.

Arquitetura

Abaixo está disponível todas as funcionalidades/componentes existentes no websocket-pubsub

  • Server Sua aplicação Node.js. No servidor serão criados os publicadores de conteúdo e os métodos de ação. Nele também serão criados os repositórios de acesso aos dados.
  • Client Sua aplicação consumidora dos dados disponibilizados pelo servidor. Pode ser uma aplicação WEB, aplicativo Mobile ou até mesmo um outro servidor Node.js. O cliente pode se inscrever (SUBSCRIBER) para receber atualizações em um tópico ou até mesmo executar métodos disponibilizados pelo servidor.
  • Repository É um repositório de dados. O websocket-pubsub define a interface genérica para os repositórios, permitindo ao desenvolvedor implementar seu proprio repositório usando qualquer banco de dados que lhe interesse. Existe uma implementação de repositório EM MEMÓRIA que é usado nos exemplos. Na documentação existe exemplos de criação de repositórios usando banco de dados Relacional (SQL) e até MongoDB.
  • Publisher Suas implementações de publicadores de conteúdo nos tópicos. Um publicador de conteúdo utiliza um ou mais repositórios para consultar os dados que serão publicados. Para tópicos com ID, o publicador recebe este parametro durante a consulta.
  • Topic O tópico é o filtro de conteúdo que um cliente pode ter interesse em receber. O cliente faz a inscrição em um tópico. Os tópicos são alimentados pelos publicadores. Existem dois tipos de tópicos LIVRES e COM IDENTIFICADOR. Um tópico livre é usado para funcionalidades genéricas, como por exemplo, receber notificações sobre a criação de novos itens em uma coleção no servidor. Já um tópico COM IDENTIFICADOR é usado para que o cliente possa ser informado quando um item com identificador específico recebe atualizações, como por exemplo, em um sistema de e-comerce o cliente pode ser informado sobre a atualização do estoque ou preço de um produto específico.
Diagram

Porque e Quando usar isso?

Porque é legal :)

O websocket-pubsub vai te ajudar se:

  1. A principal necessidade da sua aplicação é receber atualizações em tempo real de forma ágil e leve
  2. Sua aplicação não é do tamanho do Facebook (VEJA LIMITAÇÕES ABAIXO)
  3. Você deseja padronizar/reutilizar o mecanismo de comunicação em páginas WEB, Aplicativo Mobile e Servidor
  4. Você deseja diminuir consideravelmente o tamanho e quantidade de dados trafegados entre cliente e servidor por meio do algoritmo de compactação e delta implementado nessa solução

Limitações

  • Não permite (ainda) escalar para múltiplos servidores ou cores. Sua aplicação será single core.

  • Não dá suporte (ainda) a WebSocket binário (ArrayBuffer). A transferência dos dados (compactados e delta) é somente do tipo Texto.

  • Se estiver desenvolvendo páginas WEB, saiba que o motor de busca do Google não entende WebSocket, portanto, fazer uso exclusivamente de WebSocket para renderizar o conteúdo de sua página vai prejudicar as suas otimizações para mecanismos de busca - SEO

FAQs

Last updated on 16 Feb 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc